Closed Bug 635400 Opened 15 years ago Closed 15 years ago

crash [@ nsBuiltinDecoder::GetBuffered] [@ nsBuiltinDecoder::GetBuffered(nsTimeRanges*)]

Categories

(Core :: Audio/Video, defect)

All
Linux
defect
Not set
critical

Tracking

()

VERIFIED FIXED
Tracking Status
blocking2.0 --- Macaw+
status2.0 --- .1-fixed
fennec 4.0.1+ ---

People

(Reporter: jdm, Assigned: kinetik)

Details

(Keywords: crash, Whiteboard: [4.0.1?])

Crash Data

Attachments

(1 file)

This bug was filed from the Socorro interface and is report bp-d34fadb9-8756-45b1-975c-d302b2110218 . ============================================================= 0 libxul.so nsBuiltinDecoder::GetBuffered content/media/nsBuiltinDecoder.h:445 1 libxul.so nsHTMLMediaElement::GetBuffered content/html/content/src/nsHTMLMediaElement.cpp:2568 2 libxul.so nsHTMLVideoElement::GetBuffered nsHTMLVideoElement.h:65 3 libxul.so NS_InvokeByIndex_P xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp:199 4 libxul.so XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:3072 5 libxul.so XPC_WN_GetterSetter js/src/xpconnect/src/xpcprivate.h:2643 6 libxul.so js::Invoke js/src/jscntxtinlines.h:697 7 libxul.so js::ExternalGetOrSet js/src/jsinterp.cpp:858 8 libxul.so js_GetProperty js/src/jsobj.cpp:5149 9 libxul.so js::mjit::ic::GetProp js/src/methodjit/PolyIC.cpp:1692 10 libxul.so libxul.so@0xb1d10a 11 libxul.so js::mjit::ic::GetProp js/src/methodjit/PolyIC.cpp:1635 12 libmozalloc.so je_free memory/jemalloc/jemalloc.c:1442 13 @0x4430313f 14 libxul.so js::mjit::JaegerShot js/src/jscntxt.h:2890 15 libxul.so js::Invoke js/src/jsinterp.cpp:654 16 libxul.so CallOrConstructBoundFunction js/src/jsfun.cpp:2290 17 libxul.so CallCompiler::generateNativeStub js/src/methodjit/MonoIC.cpp:667 18 libxul.so js::mjit::ic::NativeCall js/src/methodjit/MonoIC.cpp:874 19 libxul.so libxul.so@0xb1d10a 20 libxul.so js::mjit::ic::NativeCall js/src/methodjit/MonoIC.cpp:872 21 libxul.so js::mjit::JaegerShot js/src/jscntxt.h:2890 22 libxul.so js::Invoke js/src/jsinterp.cpp:654 23 libxul.so js::ExternalInvoke js/src/jsinterp.cpp:858 24 libxul.so JS_CallFunctionValue js/src/jsinterp.h:961 25 libxul.so nsXPCWrappedJSClass::CallMethod js/src/xpconnect/src/xpcwrappedjsclass.cpp:1702 26 libxul.so nsXPCWrappedJS::CallMethod js/src/xpconnect/src/xpcwrappedjs.cpp:589 27 libxul.so PrepareAndDispatch xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp:134 28 libxul.so libxul.so@0x96990c 29 libxul.so nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:1114 30 @0x441a30c7 31 libxul.so nsEventListenerManager::HandleEventInternal content/events/src/nsEventListenerManager.cpp:1209 32 libxul.so nsEventTargetChainItem::HandleEvent content/events/src/nsEventListenerManager.h:146 33 libxul.so nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventDispatcher.cpp:343 34 libxul.so nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:630 35 libxul.so nsEventDispatcher::DispatchDOMEvent content/events/src/nsEventDispatcher.cpp:691 36 libxul.so nsEventListenerManager::DispatchEvent content/events/src/nsEventListenerManager.cpp:1333 37 libxul.so nsDOMEventRTTearoff::DispatchEvent content/base/src/nsGenericElement.cpp:1967 38 libxul.so nsContentUtils::DispatchTrustedEvent content/base/src/nsContentUtils.cpp:3397 39 libxul.so nsHTMLMediaElement::DispatchEvent content/html/content/src/nsHTMLMediaElement.cpp:2266 40 libxul.so nsAsyncEventRunner::Run content/html/content/src/nsHTMLMediaElement.cpp:210 41 libxul.so nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:633 42 libxul.so NS_ProcessNextEvent_P nsThreadUtils.cpp:250 43 libxul.so mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:111 44 libxul.so mozilla::ipc::MessagePumpForChildProcess::Run ipc/glue/MessagePump.cpp:230 45 libxul.so MessageLoop::RunInternal ipc/chromium/src/base/message_loop.cc:220 46 libxul.so MessageLoop::Run ipc/chromium/src/base/message_loop.cc:512 47 libxul.so nsBaseAppShell::Run widget/src/xpwidgets/nsBaseAppShell.cpp:201 48 libxul.so XRE_RunAppShell toolkit/xre/nsEmbedFunctions.cpp:640 49 libxul.so mozilla::ipc::MessagePumpForChildProcess::Run ipc/glue/MessagePump.cpp:222 50 libxul.so MessageLoop::RunInternal ipc/chromium/src/base/message_loop.cc:220 51 libxul.so MessageLoop::Run ipc/chromium/src/base/message_loop.cc:512 52 libxul.so XRE_InitChildProcess toolkit/xre/nsEmbedFunctions.cpp:519 53 libmozutils.so ChildProcessInit other-licenses/android/APKOpen.cpp:771 54 plugin-container main ipc/app/MozillaRuntimeMainAndroid.cpp:69 55 libc.so libc.so@0xd4e2 >virtual nsresult GetBuffered(nsTimeRanges* aBuffered) { > return mDecoderStateMachine->GetBuffered(aBuffered); >} mDecodertateMachine is null here.
Component: General → Video/Audio
Product: Fennec → Core
QA Contact: general → video.audio
Assignee: nobody → kinetik
Status: NEW → ASSIGNED
This was fixed by the backout of bug 631058.
Blocks: 631058
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
Status: REOPENED → ASSIGNED
For the element's mDecoder to be valid but mDecoderStateMachine to be invalid, a call to nsMediaDecoder::Shutdown must have been made by something other than the element. There are three places I can see that happening: the shutdown observer, and in the NetworkError and DecodeError calls. I can reproduce this crash easily by inducing a NetworkError from a test server and then calling element.buffered.length.
Thanks for pointing out that this bug was still occurring.
No longer blocks: 631058
Attached patch patch v0Splinter Review
Fixes nsBuiltinDecoder and nsWaveDecoder. If bug 635649 lands before this one, it'll be covered by the fix in nsBuiltinDecoder.
Attachment #521416 - Flags: review?(chris)
Attachment #521416 - Flags: review?(chris) → review+
A testcase would be nice, can you induce a network error using sjs? I wouldn't stress to much about it if it's a hassle though.
It's testable, but painful to do reliably. I have an idea how to fix that, so I'll tag this to come back to when I deal with that.
Flags: in-testsuite?
Summary: crash [@ nsBuiltinDecoder::GetBuffered] → crash [@ nsBuiltinDecoder::GetBuffered] [@ nsBuiltinDecoder::GetBuffered(nsTimeRanges*)]
Status: ASSIGNED → RESOLVED
Closed: 15 years ago15 years ago
Resolution: --- → FIXED
I'm not seeing a recent report of this crash -- VERIFIED FIXED
Status: RESOLVED → VERIFIED
This seems to be on the rise on 4.0 in the last days with almost all comments being about people trying Youtube's HTML5 stuff, and I think we really want HTML5 video to work, so as it looks like the fix works well on trunk, I'd like to nominate this to get into 4.0.1 if possible.
blocking2.0: --- → ?
I agree. This crash is very easy to hit on mobile due to unreliable network connectivity. The patch is very simple and low risk.
blocking2.0: ? → Macaw+
Comment on attachment 521416 [details] [diff] [review] patch v0 Approved for the mozilla2.0 repository, a=dveditz for release-drivers Please land this for the Tumucumaque Macaw release.
Attachment #521416 - Flags: approval2.0+
tracking-fennec: --- → ?
Whiteboard: [4.0.1?]
Crash Signature: [@ nsBuiltinDecoder::GetBuffered] [@ nsBuiltinDecoder::GetBuffered(nsTimeRanges*)]
tracking-fennec: ? → 4.0.1+
Crash Signature: [@ nsBuiltinDecoder::GetBuffered] [@ nsBuiltinDecoder::GetBuffered(nsTimeRanges*)] → [@ nsBuiltinDecoder::GetBuffered] [@ nsBuiltinDecoder::GetBuffered(nsTimeRanges*)]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: