Closed
Bug 980744
Opened 11 years ago
Closed 11 years ago
[B2G getUserMedia] Browser crashes when calling getUserMedia in debug version
Categories
(Core :: WebRTC: Audio/Video, defect)
Tracking
()
RESOLVED
FIXED
mozilla31
People
(Reporter: slee, Assigned: slee)
References
Details
Attachments
(1 file, 1 obsolete file)
3.17 KB,
patch
|
jesup
:
review+
mikeh
:
review+
|
Details | Diff | Splinter Review |
STR:
* build gecko with debug
* go to http://mozilla.github.io/webrtc-landing/gum_test.html
* choose video and grant the permission
Here is the back trace
#0 __libc_android_abort () at bionic/libc/unistd/abort.c:82
#1 0x42d4e04c in PR_Assert (
s=0x42e36388 "mon->entryCount != 0 && pthread_equal(mon->owner, pthread_self())",
file=0x42e361b0 "/Volumes/ssd/mozilla-central/nsprpub/pr/src/pthreads/ptsynch.c", ln=577)
at /Volumes/ssd/mozilla-central/nsprpub/pr/src/io/prlog.c:554
#2 0x42d5b72c in PR_AssertCurrentThreadInMonitor (mon=0x44dafc40)
at /Volumes/ssd/mozilla-central/nsprpub/pr/src/pthreads/ptsynch.c:576
#3 0x42d5b772 in pt_PostNotifyToMonitor (mon=0x44dafc40, broadcast=0)
at /Volumes/ssd/mozilla-central/nsprpub/pr/src/pthreads/ptsynch.c:443
#4 0x42d5b7bc in PR_Notify (mon=0xdeadbaad)
at /Volumes/ssd/mozilla-central/nsprpub/pr/src/pthreads/ptsynch.c:721
#5 0x413e6b0c in mozilla::ReentrantMonitor::Notify (this=0x44449f80)
at ../../../dist/include/mozilla/ReentrantMonitor.h:107
#6 mozilla::MediaEngineWebRTCVideoSource::AllocImpl (this=0x44449f80)
at /Volumes/ssd/mozilla-central/content/media/webrtc/MediaEngineWebRTCVideo.cpp:519
#7 0x40a492b0 in mozilla::runnable_args_m_0<CSF::VcmSIPCCBinding*, void (sigslot::has_slots<sigslot::single_threaded>::*)()>::Run (this=<value optimized out>)
at /Volumes/ssd/mozilla-central/media/webrtc/signaling/../../../media/mtransport/runnable_utils_generated.h:49
#8 0x40714728 in nsThread::ProcessNextEvent (this=0x40322780, mayWait=true, result=0xbef11df7)
at /Volumes/ssd/mozilla-central/xpcom/threads/nsThread.cpp:643
#9 0x406c5668 in NS_ProcessNextEvent (thread=0x40322780, mayWait=true)
at /Volumes/ssd/mozilla-central/xpcom/glue/nsThreadUtils.cpp:263
#10 0x408d8df2 in mozilla::ipc::MessagePump::Run (this=0x40301b20, aDelegate=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/glue/MessagePump.cpp:136
#11 0x408d8f1a in mozilla::ipc::MessagePumpForChildProcess::Run (this=0x40301b20,
aDelegate=0xbef128b4) at /Volumes/ssd/mozilla-central/ipc/glue/MessagePump.cpp:283
#12 0x408c472e in MessageLoop::RunInternal (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:226
#13 0x408c4746 in MessageLoop::RunHandler (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:219
#14 MessageLoop::Run (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:193
#15 0x40eec4ba in nsBaseAppShell::Run (this=0x44251340)
at /Volumes/ssd/mozilla-central/widget/xpwidgets/nsBaseAppShell.cpp:164
#16 0x418b62fa in XRE_RunAppShell ()
at /Volumes/ssd/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:679
#17 0x408d8f26 in mozilla::ipc::MessagePumpForChildProcess::Run (this=0x40301b20,
aDelegate=0xbef128b4) at /Volumes/ssd/mozilla-central/ipc/glue/MessagePump.cpp:253
#18 0x408c472e in MessageLoop::RunInternal (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:226
#19 0x408c4746 in MessageLoop::RunHandler (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:219
#20 MessageLoop::Run (this=0xbef128b4)
at /Volumes/ssd/mozilla-central/ipc/chromium/src/base/message_loop.cc:193
#21 0x418b6b7a in XRE_InitChildProcess (aArgc=2, aArgv=0xbef129c4, aProcess=3203476052)
at /Volumes/ssd/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:516
#22 0x00008894 in main (argc=6, argv=0xbef12a54)
at /Volumes/ssd/mozilla-central/ipc/app/MozillaRuntimeMain.cpp:149
Assignee | ||
Comment 1•11 years ago
|
||
It fixed the assertion fail problem in comment 1. After applying this patch, there is another assertion fail, http://dxr.mozilla.org/mozilla-central/source/content/media/webrtc/MediaEngineWebRTCVideo.cpp#623. GetCurrentScreenConfiguration cannot be called on non-mainthread. I will find other place to call it.
Comment 2•11 years ago
|
||
I'd like to see the comments in MediaEngineWebRTC.h updated; in one place it says (for B2G) that mCallbackMonitor is used for mState and mLastCapture, but in other places it says mState is protected by mMonitor - those should be updated to indicate that applies to non-B2G.
Mike, you should look in on this bug as well.
Moving to WebRTC
Component: Video/Audio → WebRTC: Audio/Video
Flags: needinfo?(mhabicher)
Comment 3•11 years ago
|
||
Sorry about the missing monitor entry. As for the off-Main Thread callbacks, except for OnNewPreviewFrame(), all of these dispatch runnables to the Main Thread for the DOM-facing CameraControl API, e.g.:
http://dxr.mozilla.org/mozilla-central/source/dom/camera/DOMCameraControlListener.cpp#64
So you won't have any trouble doing something like that.
Flags: needinfo?(mhabicher)
Updated•11 years ago
|
Blocks: b2g-getusermedia
Assignee | ||
Comment 4•11 years ago
|
||
In this patch, I update the comments, remove unnecessary mutex and use mCallbackMonitor to protect mState.
Attachment #8390373 -
Flags: review?(rjesup)
Attachment #8390373 -
Flags: review?(mhabicher)
Updated•11 years ago
|
Attachment #8390373 -
Flags: review?(rjesup) → review+
Updated•11 years ago
|
Assignee: nobody → slee
Comment 5•11 years ago
|
||
Comment on attachment 8390373 [details] [diff] [review]
Fix resource that is protected by wrong mutex
Review of attachment 8390373 [details] [diff] [review]:
-----------------------------------------------------------------
Sorry for the lag--this looks fine to me.
Attachment #8390373 -
Flags: review?(mhabicher) → review+
Assignee | ||
Comment 6•11 years ago
|
||
Here is the try server log, https://tbpl.mozilla.org/?tree=Try&rev=f180639f9d85.
Assignee | ||
Updated•11 years ago
|
Keywords: checkin-needed
Updated•11 years ago
|
Attachment #8387500 -
Attachment is obsolete: true
Comment 7•11 years ago
|
||
Keywords: checkin-needed
Comment 8•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
You need to log in
before you can comment on or make changes to this bug.
Description
•