Closed Bug 1174120 Opened 11 years ago Closed 10 years ago

Crash in MediaDecoderReader::SetDuration()

Categories

(Core :: Audio/Video: Playback, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox41 --- affected

People

(Reporter: jya, Unassigned)

References

Details

(lldb) bt * thread #101: tid = 0x23e5f72, 0x000000010657b59b XUL`mozilla::MediaDecoderReader::SetStartTime(this=0x00000001324e5000, aStartTime=0) + 27 at MediaDecoderReader.cpp:150, name = 'MediaPl~back #3', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x000000010657b59b XUL`mozilla::MediaDecoderReader::SetStartTime(this=0x00000001324e5000, aStartTime=0) + 27 at MediaDecoderReader.cpp:150 frame #1: 0x000000010658732b XUL`mozilla::MediaDecoderStateMachine::SetStartTime(this=0x000000012b5d6000, aStartTimeUsecs=0) + 331 at MediaDecoderStateMachine.cpp:3156 frame #2: 0x0000000106587154 XUL`mozilla::MediaDecoderStateMachine::SetDuration(this=0x000000012b5d6000, aDuration=TimeUnit at 0x00000001480f45a0) + 292 at MediaDecoderStateMachine.cpp:1457 frame #3: 0x000000010657e2cb XUL`mozilla::MediaDecoderStateMachine::RecomputeDuration(this=0x000000012b5d6000) + 907 at MediaDecoderStateMachine.cpp:1440 frame #4: 0x0000000106612f00 XUL`mozilla::WatchManager<mozilla::MediaDecoderStateMachine>::PerCallbackWatcher::DoNotify(this=0x000000012b3e9700) + 400 at StateWatching.h:276 frame #5: 0x0000000106613633 XUL`void nsRunnableMethodArguments<>::apply<mozilla::WatchManager<mozilla::MediaDecoderStateMachine>::PerCallbackWatcher, void (this=0x000000012304e3f0, o=0x000000012b3e9700, m=0x0000000106612d70)()>(mozilla::WatchManager<mozilla::MediaDecoderStateMachine>::PerCallbackWatcher*, void (mozilla::WatchManager<mozilla::MediaDecoderStateMachine>::PerCallbackWatcher::*)()) + 131 at nsThreadUtils.h:618 frame #6: 0x000000010661332c XUL`nsRunnableMethodImpl<void (mozilla::WatchManager<mozilla::MediaDecoderStateMachine>::PerCallbackWatcher::*)(), true>::Run(this=0x000000012304e3c0) + 140 at nsThreadUtils.h:825 frame #7: 0x000000010655c8f7 XUL`mozilla::AutoTaskDispatcher::DrainDirectTasks(this=0x00000001480f48b8) + 119 at TaskDispatcher.h:101 frame #8: 0x000000010655e449 XUL`mozilla::AutoTaskDispatcher::TaskGroupRunnable::MaybeDrainDirectTasks(this=0x0000000121b98b80) + 57 at TaskDispatcher.h:188 frame #9: 0x000000010655e355 XUL`mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run(this=0x0000000121b98b80) + 293 at TaskDispatcher.h:177 frame #10: 0x000000010666831f XUL`mozilla::MediaTaskQueue::Runner::Run(this=0x0000000121b98f80) + 623 at MediaTaskQueue.cpp:257 frame #11: 0x000000010371e7b8 XUL`nsThreadPool::Run(this=0x0000000130e73950) + 984 at nsThreadPool.cpp:221 frame #12: 0x000000010371e8bc XUL`non-virtual thunk to nsThreadPool::Run(this=0x0000000130e73958) + 28 at nsThreadPool.cpp:235 frame #13: 0x000000010371b2b4 XUL`nsThread::ProcessNextEvent(this=0x000000013083cf10, aMayWait=false, aResult=0x00000001480f4c5e) + 2068 at nsThread.cpp:846 frame #14: 0x0000000103791817 XUL`NS_ProcessNextEvent(aThread=0x000000013083cf10, aMayWait=false) + 151 at nsThreadUtils.cpp:265 frame #15: 0x0000000103dc0590 XUL`mozilla::ipc::MessagePumpForNonMainThreads::Run(this=0x00000001331bb740, aDelegate=0x000000012ad04bb0) + 656 at MessagePump.cpp:326 frame #16: 0x0000000103d347c5 XUL`MessageLoop::RunInternal(this=0x000000012ad04bb0) + 117 at message_loop.cc:233 frame #17: 0x0000000103d346d5 XUL`MessageLoop::RunHandler(this=0x000000012ad04bb0) + 21 at message_loop.cc:226 frame #18: 0x0000000103d3467d XUL`MessageLoop::Run(this=0x000000012ad04bb0) + 45 at message_loop.cc:200 frame #19: 0x00000001037197d9 XUL`nsThread::ThreadFunc(aArg=0x000000013083cf10) + 329 at nsThread.cpp:359 frame #20: 0x0000000103371621 libnss3.dylib`_pt_root(arg=0x00000001360efec0) + 449 at ptthread.c:212 frame #21: 0x00007fff8944a268 libsystem_pthread.dylib`_pthread_body + 131 frame #22: 0x00007fff8944a1e5 libsystem_pthread.dylib`_pthread_start + 176 frame #23: 0x00007fff8944841d libsystem_pthread.dylib`thread_start + 13 (lldb) print mShutdown (bool) $1 = true We have mDecoder == true. Occurred to me twice running the youtube MSE conformance test (test 21: Duration). Seems like the watcher can kick in after the reader has been shutdown.
(In reply to Jean-Yves Avenard [:jya] from comment #0) > (lldb) bt > * thread #101: tid = 0x23e5f72, 0x000000010657b59b > XUL`mozilla::MediaDecoderReader::SetStartTime(this=0x00000001324e5000, > aStartTime=0) + 27 at MediaDecoderReader.cpp:150, name = 'MediaPl~back #3', > stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > * frame #0: 0x000000010657b59b > XUL`mozilla::MediaDecoderReader::SetStartTime(this=0x00000001324e5000, > aStartTime=0) + 27 at MediaDecoderReader.cpp:150 > frame #1: 0x000000010658732b > XUL`mozilla::MediaDecoderStateMachine::SetStartTime(this=0x000000012b5d6000, > aStartTimeUsecs=0) + 331 at MediaDecoderStateMachine.cpp:3156 > frame #2: 0x0000000106587154 > XUL`mozilla::MediaDecoderStateMachine::SetDuration(this=0x000000012b5d6000, > aDuration=TimeUnit at 0x00000001480f45a0) + 292 at > MediaDecoderStateMachine.cpp:1457 > frame #3: 0x000000010657e2cb > XUL`mozilla::MediaDecoderStateMachine:: > RecomputeDuration(this=0x000000012b5d6000) + 907 at > MediaDecoderStateMachine.cpp:1440 > frame #4: 0x0000000106612f00 > XUL`mozilla::WatchManager<mozilla::MediaDecoderStateMachine>:: > PerCallbackWatcher::DoNotify(this=0x000000012b3e9700) + 400 at > StateWatching.h:276 > frame #5: 0x0000000106613633 XUL`void > nsRunnableMethodArguments<>::apply<mozilla::WatchManager<mozilla:: > MediaDecoderStateMachine>::PerCallbackWatcher, void > (this=0x000000012304e3f0, o=0x000000012b3e9700, > m=0x0000000106612d70)()>(mozilla::WatchManager<mozilla:: > MediaDecoderStateMachine>::PerCallbackWatcher*, void > (mozilla::WatchManager<mozilla::MediaDecoderStateMachine>:: > PerCallbackWatcher::*)()) + 131 at nsThreadUtils.h:618 > frame #6: 0x000000010661332c XUL`nsRunnableMethodImpl<void > (mozilla::WatchManager<mozilla::MediaDecoderStateMachine>:: > PerCallbackWatcher::*)(), true>::Run(this=0x000000012304e3c0) + 140 at > nsThreadUtils.h:825 > frame #7: 0x000000010655c8f7 > XUL`mozilla::AutoTaskDispatcher::DrainDirectTasks(this=0x00000001480f48b8) + > 119 at TaskDispatcher.h:101 > frame #8: 0x000000010655e449 > XUL`mozilla::AutoTaskDispatcher::TaskGroupRunnable:: > MaybeDrainDirectTasks(this=0x0000000121b98b80) + 57 at TaskDispatcher.h:188 > frame #9: 0x000000010655e355 > XUL`mozilla::AutoTaskDispatcher::TaskGroupRunnable:: > Run(this=0x0000000121b98b80) + 293 at TaskDispatcher.h:177 > frame #10: 0x000000010666831f > XUL`mozilla::MediaTaskQueue::Runner::Run(this=0x0000000121b98f80) + 623 at > MediaTaskQueue.cpp:257 > frame #11: 0x000000010371e7b8 > XUL`nsThreadPool::Run(this=0x0000000130e73950) + 984 at nsThreadPool.cpp:221 > frame #12: 0x000000010371e8bc XUL`non-virtual thunk to > nsThreadPool::Run(this=0x0000000130e73958) + 28 at nsThreadPool.cpp:235 > frame #13: 0x000000010371b2b4 > XUL`nsThread::ProcessNextEvent(this=0x000000013083cf10, aMayWait=false, > aResult=0x00000001480f4c5e) + 2068 at nsThread.cpp:846 > frame #14: 0x0000000103791817 > XUL`NS_ProcessNextEvent(aThread=0x000000013083cf10, aMayWait=false) + 151 at > nsThreadUtils.cpp:265 > frame #15: 0x0000000103dc0590 > XUL`mozilla::ipc::MessagePumpForNonMainThreads::Run(this=0x00000001331bb740, > aDelegate=0x000000012ad04bb0) + 656 at MessagePump.cpp:326 > frame #16: 0x0000000103d347c5 > XUL`MessageLoop::RunInternal(this=0x000000012ad04bb0) + 117 at > message_loop.cc:233 > frame #17: 0x0000000103d346d5 > XUL`MessageLoop::RunHandler(this=0x000000012ad04bb0) + 21 at > message_loop.cc:226 > frame #18: 0x0000000103d3467d > XUL`MessageLoop::Run(this=0x000000012ad04bb0) + 45 at message_loop.cc:200 > frame #19: 0x00000001037197d9 > XUL`nsThread::ThreadFunc(aArg=0x000000013083cf10) + 329 at nsThread.cpp:359 > frame #20: 0x0000000103371621 > libnss3.dylib`_pt_root(arg=0x00000001360efec0) + 449 at ptthread.c:212 > frame #21: 0x00007fff8944a268 libsystem_pthread.dylib`_pthread_body + 131 > frame #22: 0x00007fff8944a1e5 libsystem_pthread.dylib`_pthread_start + > 176 > frame #23: 0x00007fff8944841d libsystem_pthread.dylib`thread_start + 13 > > (lldb) print mShutdown > (bool) $1 = true > > We have mDecoder == true. > > Occurred to me twice running the youtube MSE conformance test (test 21: > Duration). > > Seems like the watcher can kick in after the reader has been shutdown. I believe bug 1163223 should fix this.
Depends on: 1163223
Component: Audio/Video → Audio/Video: Playback
yes, this method no longer exist and old MSE was removed
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.