RESOLVED FIXED 174323
Accessing localDescription, remoteDescription, etc. after setTimeout raises EXC_BAD_ACCESS
https://bugs.webkit.org/show_bug.cgi?id=174323
Summary Accessing localDescription, remoteDescription, etc. after setTimeout raises E...
Mark Roberts
Reported 2017-07-10 15:16:04 PDT
The following code raises an EXC_BAD_ACCESS error and crashes the tab in Safari 11 Tech Preview. (async () => { const pc = new RTCPeerConnection() pc.close() await new Promise(resolve => setTimeout(resolve)) console.log(pc.localDescription) })() Even simpler: const pc = new RTCPeerConnection() pc.close() setTimeout(() => { console.log(pc.localDescription) }) You can replace the access to `localDescription` with any of * localDescription * currentLocalDescription * pendingLocalDescription * remoteDescription * currentRemoteDescription * pendingRemoteDescription Expected output: null Actual output: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebCore 0x000000010b59e8dd WebCore::LibWebRTCMediaEndpoint::pendingRemoteDescription() const + 13 1 com.apple.WebCore 0x000000010b5aa872 WebCore::LibWebRTCPeerConnectionBackend::pendingRemoteDescription() const + 18 2 com.apple.WebCore 0x000000010b89a1a6 WebCore::RTCPeerConnection::pendingRemoteDescription() const + 22 3 com.apple.WebCore 0x000000010b3d4b77 WebCore::jsRTCPeerConnectionPendingRemoteDescription(JSC::ExecState*, long long, JSC::PropertyName) + 231 ...
Attachments
Patch (14.89 KB, patch)
2017-07-12 13:03 PDT, youenn fablet
no flags
Archive of layout-test-results from ews106 for mac-elcapitan-wk2 (1.14 MB, application/zip)
2017-07-12 14:10 PDT, Build Bot
no flags
Patch for landing (11.42 KB, patch)
2017-07-12 14:25 PDT, youenn fablet
no flags
Radar WebKit Bug Importer
Comment 1 2017-07-12 10:36:42 PDT
youenn fablet
Comment 2 2017-07-12 13:03:33 PDT
Eric Carlson
Comment 3 2017-07-12 13:06:29 PDT
Comment on attachment 315275 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=315275&action=review > Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:384 > +void PeerConnectionBackend::cleanPendingPromises() Nit: rejectPendingPromises, or maybe clearPendingPromises, would be a more accurate name.
Build Bot
Comment 4 2017-07-12 14:10:35 PDT
Comment on attachment 315275 [details] Patch Attachment 315275 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/4109254 New failing tests: imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-createOffer.html webrtc/libwebrtc/release-while-creating-offer.html imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-createAnswer.html imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html
Build Bot
Comment 5 2017-07-12 14:10:36 PDT
Created attachment 315282 [details] Archive of layout-test-results from ews106 for mac-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews106 Port: mac-elcapitan-wk2 Platform: Mac OS X 10.11.6
youenn fablet
Comment 6 2017-07-12 14:25:09 PDT
Created attachment 315283 [details] Patch for landing
WebKit Commit Bot
Comment 7 2017-07-12 15:31:48 PDT
Comment on attachment 315283 [details] Patch for landing Clearing flags on attachment: 315283 Committed r219428: <http://trac.webkit.org/changeset/219428>
WebKit Commit Bot
Comment 8 2017-07-12 15:31:50 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.