Closed Bug 634825 Opened 13 years ago Closed 13 years ago

crash [@ nsBuiltinDecoderStateMachine::Run()][@ nsBuiltinDecoder::GetPreloadAction ]

Categories

(Core :: Audio/Video, defect)

defect
Not set
critical

Tracking

()

VERIFIED FIXED
Tracking Status
blocking2.0 --- final+

People

(Reporter: pavlov, Unassigned)

References

Details

(Keywords: crash, regression, Whiteboard: [hardblocker])

Crash Data

This bug was filed from the Socorro interface and is 
report bp-6ab9b81c-6f1a-4891-be44-a9dfd2110216 .
============================================================= 

0 	xul.dll 	nsBuiltinDecoderStateMachine::Run 	content/media/nsBuiltinDecoderStateMachine.cpp:991
1 	xul.dll 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:633
2 	xul.dll 	nsThreadStartupEvent::Run 	xpcom/threads/nsThread.cpp:207
3 	nspr4.dll 	_PR_NativeRunThread 	nsprpub/pr/src/threads/combined/pruthr.c:426
4 	nspr4.dll 	pr_root 	nsprpub/pr/src/md/windows/w95thred.c:122
5 	mozcrt19.dll 	_callthreadstartex 	obj-firefox/memory/jemalloc/crtsrc/threadex.c:348
6 	mozcrt19.dll 	__dllonexit 	obj-firefox/memory/jemalloc/crtsrc/onexit.c:276
7 	mozcrt19.dll 	_threadstartex 	obj-firefox/memory/jemalloc/crtsrc/threadex.c:326
8 	ntdll.dll 	ntdll.dll@0x39f01 


I've hit this twice now in today's build when browsing random sites -- not sure steps to reproduce yet.
Component: General → Video/Audio
Product: Firefox → Core
QA Contact: general → video.audio
blocking2.0: --- → ?
+            nsCOMPtr<nsIRunnable> event = new ShutdownThreadEvent(mDecoder->mStateMachineThread);
+            NS_DispatchToMainThread(event, NS_DISPATCH_NORMAL);
+            mDecoder->mStateMachineThread = nsnull;

This part of the patch in bug 631058 interacts badly with nsBuiltinDecoder::Stop():

  if (mStateMachineThread)
    mStateMachineThread->Shutdown();

This is the mechanism used to ensure that the state machine thread is no longer running before the decoder is destroyed. However, by setting mStateMachineThread to nsnull before the ShutdownThreadEvent executes, the check in Stop() will get skipped, even though the state machine thread is still potentially active.
It is #4 top crasher in today's build.
Blocks: 631058
Keywords: regression
OS: Windows NT → All
Hardware: x86 → All
Summary: crash [@ nsBuiltinDecoderStateMachine::Run()] → crash [@ nsBuiltinDecoderStateMachine::Run()][@ nsBuiltinDecoder::GetPreloadAction ]
Version: unspecified → Trunk
Backed out.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Would have been a hardblocker, but fixed anyhow.
blocking2.0: ? → final+
Whiteboard: [hardblocker]
There have been no recent crash reports with Firefox 4.0b12pre > 20110216.
Status: RESOLVED → VERIFIED
Crash Signature: [@ nsBuiltinDecoderStateMachine::Run()] [@ nsBuiltinDecoder::GetPreloadAction ]
You need to log in before you can comment on or make changes to this bug.