Closed
Bug 808546
Opened 12 years ago
Closed 12 years ago
WebRTC crash [@nsDOMMediaStream::GetStream]
Categories
(Core :: WebRTC: Audio/Video, defect, P1)
Core
WebRTC: Audio/Video
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox18 | --- | disabled |
firefox19 | --- | disabled |
firefox20 | + | fixed |
firefox-esr17 | --- | unaffected |
People
(Reporter: posidron, Assigned: jesup)
References
Details
(Keywords: crash, sec-critical, testcase, Whiteboard: [asan][WebRTC][blocking-webrtc+][qa-][adv-main20-])
Crash Data
Attachments
(5 files)
Tested with m-c changeset: 112272:ab099c9e1a09
Reporter | ||
Comment 1•12 years ago
|
||
Assignee | ||
Comment 2•12 years ago
|
||
From the log:
565325824[1311df480]: VcmSipccBinding vcmRxStartICE(7f1a88324fc9ac82)
565325824[1311df480]: VcmSipccBinding Making new transport flow for level=1 rtcp=false
565325824[1311df480]: VcmSipccBinding Making new transport flow for level=1 rtcp=true
565325824[1311df480]: WebrtcAudioSessionConduit Create
565325824[1311df480]: WebrtcAudioSessionConduit Init
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Disconnecting media streams from PC
556646400[13121f480]: cpr SIPCC-CC_API: 8/15, cc_int_onhook: UI -> GSM: ONHOOK
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Disconnecting transport
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Media shut down
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Disconnecting media streams from PC
556646400[13121f480]: cpr SIPCC-CC_API: 10/16, cc_int_onhook: UI -> GSM: ONHOOK
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Disconnecting transport
1987719552[1037e9e80]: PeerConnectionImpl ShutdownMedia Media shut down
565325824[1311df480]: WebrtcAudioSessionConduit Init Channel Created 0
565325824[1311df480]: WebrtcAudioSessionConduit Init AudioSessionConduit Initialization Done
565325824[1311df480]: WebrtcAudioSessionConduit Create Successfully created AudioConduit
I'd guess this is due to a race between startup of a session and an almost immediate shutdown. Without local vars I can't be sure, but I'd bet the stream_ dis null or bad.
Did asan indicate what sort of failure it was?
Comment 3•12 years ago
|
||
Can you give steps to reproduce?
Reporter | ||
Comment 4•12 years ago
|
||
Oh, sorry that line got cut of. It's a null pointer dereference. It's reproducible but sadly not always at the same place therefore I couldn't provide a testcase.
Comment 6•12 years ago
|
||
Verify this exists when peer connection shutdown lands.
Priority: -- → P1
Whiteboard: [asan][WebRTC][blocking-webrtc+]
Reporter | ||
Comment 7•12 years ago
|
||
To reproduce reload the testcase a few times. The testcase will lead to crashes at non determinable locations.
Tested with m-c changeset: 113558:9a6d708faf3f
Reporter | ||
Updated•12 years ago
|
Whiteboard: [asan][WebRTC][blocking-webrtc+] → [asan][WebRTC][blocking-webrtc+][fuzzblocker]
Comment 8•12 years ago
|
||
And...now it's a candidate for a crashtest with the testcase given.
Flags: in-testsuite- → in-testsuite?
Comment 9•12 years ago
|
||
This testcase doesn't reproduce the crash for me with Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:20.0) Gecko/20.0 Firefox/20.0 ID:20121122030751 and newer.
Reporter | ||
Comment 10•12 years ago
|
||
Hm, still works here, in fact it can crash at the same place as https://bugzilla.mozilla.org/show_bug.cgi?id=810626 therefore marking s-s.
Tested with m-c changeset: 114110:541ccce39563
Group: core-security
Crash Signature: [@ nsDOMMediaStream::GetStream]
[@ nsDOMMediaStream::GetHintContents]
[@ sipcc::PeerConnectionMedia::AddStream]
See Also: → 810626
Comment 11•12 years ago
|
||
What type of build do you have? Can you also see it with an official nightly build? Is it opt only?
Comment 12•12 years ago
|
||
(In reply to Henrik Skupin (:whimboo) from comment #11)
> build? Is it opt only?
I meant debug not-optimized, sorry.
Reporter | ||
Comment 13•12 years ago
|
||
It is an ASan enabled debug, -O1 build. It's used through out all tests.
Reporter | ||
Updated•12 years ago
|
Keywords: sec-critical
Assignee | ||
Comment 14•12 years ago
|
||
This will crash with a debug non-ASAN build.
I strongly think this is another "Big Lock" bug, where something is deleting the stream while we're still initing the conduit. My GDB backtrace shows that stream (GetLocalStream(0)) is non-null, but stream->GetMediaStream() is NULL (and what causes the crash).
Assignee | ||
Updated•12 years ago
|
Depends on: webrtc-big-lock
Assignee | ||
Comment 15•12 years ago
|
||
Assignee | ||
Comment 16•12 years ago
|
||
I added locally MOZ_ASSERT()s to vcmTxStartICE for stream and stream->GetMediaStream(), and a short run of the new testcase will kick out in the GetMediaStream() assert.
Comment 17•12 years ago
|
||
Assigning to Randell on a guess that he'll be okay with that.
Assignee: nobody → rjesup
Assignee | ||
Updated•12 years ago
|
OS: Mac OS X → All
Hardware: x86_64 → All
Updated•12 years ago
|
status-firefox18:
--- → disabled
status-firefox19:
--- → disabled
status-firefox20:
--- → affected
status-firefox-esr17:
--- → unaffected
tracking-firefox20:
--- → +
Assignee | ||
Comment 18•12 years ago
|
||
Assignee | ||
Comment 19•12 years ago
|
||
Tested with current inbound (with the fix for bug 792175 (and others)) for about 5 hours; no problems. I believe this is fixed as expected from comment 14.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Keywords: verifyme
Whiteboard: [asan][WebRTC][blocking-webrtc+][fuzzblocker] → [asan][WebRTC][blocking-webrtc+][fuzzblocker][qa-]
Reporter | ||
Updated•12 years ago
|
Whiteboard: [asan][WebRTC][blocking-webrtc+][fuzzblocker][qa-] → [asan][WebRTC][blocking-webrtc+][qa-]
Comment 20•12 years ago
|
||
This landed on 20 before it merged to Aurora on 1/7/2012 so marking status as fixed.
Updated•12 years ago
|
Whiteboard: [asan][WebRTC][blocking-webrtc+][qa-] → [asan][WebRTC][blocking-webrtc+][qa-][adv-main20-]
Updated•10 years ago
|
Group: core-security
You need to log in
before you can comment on or make changes to this bug.
Description
•