Closed
Bug 991208
Opened 11 years ago
Closed 6 years ago
B2G Assertion !(mMediaSeekable && mTransportSeekable) for IE fishtank benchmark.
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
WONTFIX
tracking-b2g | backlog |
People
(Reporter: gwagner, Unassigned)
Details
Seen on current b2g trunk with --enable-debug gecko build on nexus 4.
STR:
Visit http://ie.microsoft.com/testdrive/performance/fishbowl/
[Switching to Thread 1303.1430]
0xb56c2700 in mozilla::MediaDecoderStateMachine::DecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1879
1879 MOZ_ASSERT(!(mMediaSeekable && mTransportSeekable) ||
(gdb) bt
#0 0xb56c2700 in mozilla::MediaDecoderStateMachine::DecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1879
#1 0xb56c27c4 in mozilla::MediaDecoderStateMachine::CallDecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1826
#2 0xb4b556f0 in nsRunnableMethodImpl<tag_nsresult (nsMemoryReporterManager::*)(), void, true>::Run (this=<optimized out>) at ../../dist/include/nsThreadUtils.h:383
#3 0xb56d2418 in mozilla::MediaTaskQueue::Runner::Run (this=0xb21746d0) at ../../../content/media/MediaTaskQueue.cpp:127
#4 0xb4b85582 in nsThreadPool::Run (this=0xb219bca0) at ../../../xpcom/threads/nsThreadPool.cpp:211
#5 0xb4b83952 in ProcessNextEvent (result=0xb3d56e1f, mayWait=true, this=0xb2194500) at ../../../xpcom/threads/nsThread.cpp:694
#6 nsThread::ProcessNextEvent (this=0xb2194500, mayWait=<optimized out>, result=0xb3d56e1f) at ../../../xpcom/threads/nsThread.cpp:618
#7 0xb4b3c5d8 in NS_ProcessNextEvent (thread=0xb2194500, mayWait=<optimized out>) at ../../../xpcom/glue/nsThreadUtils.cpp:263
#8 0xb4d320c4 in mozilla::ipc::MessagePumpForNonMainThreads::Run (this=0xb21a0130, aDelegate=0xb25bffa0) at ../../../ipc/glue/MessagePump.cpp:336
#9 0xb4d1f742 in MessageLoop::RunInternal (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:226
#10 0xb4d1f75a in RunHandler (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:219
#11 MessageLoop::Run (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:193
#12 0xb4b83316 in nsThread::ThreadFunc (arg=0xb2194500) at ../../../xpcom/threads/nsThread.cpp:308
#13 0xb476ca5c in _pt_root (arg=0xb2194580) at ../../../../../nsprpub/pr/src/pthreads/ptthread.c:212
#14 0xb6eb9a5c in __thread_entry (func=0xb476c9b5 <_pt_root>, arg=0xb2194580, tls=0xb3d56f00) at bionic/libc/bionic/pthread_create.cpp:92
#15 0xb6eb9bd8 in pthread_create (thread_out=0xb3d76af4, attr=<optimized out>, start_routine=0x78, arg=0xb2194580) at bionic/libc/bionic/pthread_create.cpp:201
#16 0x00000000 in ?? ()
(gdb) p *this
$1 = {mRefCnt = {static isThreadSafe = true,
mValue = {<mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2>> = {<mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2>> = {
mValue = 2}, <No data fields>}, <No data fields>}}, mDecoder = {mRawPtr = 0xb2d91200}, mState = mozilla::MediaDecoderStateMachine::DECODER_STATE_DECODING_METADATA, mAudioThread = {mRawPtr = 0x0},
mDecodeTaskQueue = {ptr = 0xb219bd60}, mStateMachineThreadPool = {ptr = 0xb2138980}, mTimer = {mRawPtr = 0xb21602e0}, mTimeout = {mValue = 0}, mInRunningStateMachine = {value = false}, mPlayStartTime = {
mValue = 0}, mSyncPointInMediaStream = -1, mSyncPointInDecodedStream = -1, mResetPlayStartTime = false, mPlayDuration = 0, mBufferingStart = {mValue = 0}, mStartTime = 0, mEndTime = -1, mSeekTarget = {
mTime = -1, mType = mozilla::SeekTarget::Invalid}, mFragmentEndTime = -1, mAudioStream = {mRawPtr = 0x0}, mReader = {mRawPtr = 0xb2f8e790}, mPendingWakeDecoder = {mEvent = {mRawPtr = 0x0}},
mCurrentFrameTime = 0, mAudioStartTime = 0, mAudioEndTime = -1, mVideoFrameEndTime = -1, mVolume = 1, mPlaybackRate = 1, mPreservesPitch = true, mBasePosition = 0, mDecodeStartTime = {mValue = 0},
mBufferingWait = 30, mLowDataThresholdUsecs = 5000000, mAmpleVideoFrames = 3, mLowAudioThresholdUsecs = 300000, mAmpleAudioThresholdUsecs = 1000000, mAudioPrerollUsecs = 600000, mVideoPrerollFrames = 1,
mIsAudioPrerolling = 165, mIsVideoPrerolling = 165, mIsAudioDecoding = 165, mIsVideoDecoding = 165, mDispatchedAudioDecodeTask = false, mDispatchedVideoDecodeTask = false, mIsReaderIdle = false,
mSkipToNextKeyFrame = 165, mAudioCaptured = false, mTransportSeekable = true, mMediaSeekable = true, mPositionChangeQueued = false, mAudioCompleted = false, mGotDurationFromMetaData = false,
mDispatchedEventToDecode = false, mStopAudioThread = true, mQuickBuffering = false, mMinimizePreroll = false, mDecodeThreadWaiting = false, mRealTime = false, mEventManager = {mDecoder = 0xb2d91200,
mSamplesPerSecond = -2.87351825e-16, mSignalBuffer = {mRawPtr = 0xb3c1e568}, mSignalBufferLength = 0, mNewSignalBufferLength = 0, mSignalBufferPosition = 0,
mPendingEvents = {<nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator>> = {<nsTArray_base<nsTArrayInfallibleAllocator, nsTArray_CopyWithMemutils>> = {
mHdr = 0xb6d227cc}, <nsTArray_TypedBase<nsCOMPtr<nsIRunnable>, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<nsTArray_SafeElementAtHelper<nsCOMPtr<nsIRunnable>, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<nsTArray_SafeElementAtSmartPtrHelper<nsIRunnable, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, mReentrantMonitor = {<mozilla::BlockingResourceBase> = {static kResourceTypeName = 0xb6ad9090, mChainPrev = 0x0, mDDEntry = 0xb21744d0,
static sCallOnce = {initialized = 1, inProgress = 1, status = PR_SUCCESS}, static sResourceAcqnChainFrontTPI = 1, static sDeadlockDetector = 0xb3c25160}, mReentrantMonitor = 0xb21388a0,
mEntryCount = 0}, mHasListener = false}, mInfo = {mVideo = {mDisplay = {<mozilla::gfx::BaseSize<int, nsIntSize>> = {width = 0, height = 0}, <No data fields>}, mStereoMode = mozilla::MONO,
mHasVideo = false}, mAudio = {mRate = 44100, mChannels = 2, mHasAudio = true}}, mMetadataManager = {mMetadataQueue = {sentinel = {next = 0xb3c4aff0, prev = 0xb3c4aff0, isSentinel = true}}},
mLastFrameStatus = mozilla::MediaDecoderOwner::NEXT_FRAME_UNINITIALIZED}
Reporter | ||
Updated•11 years ago
|
blocking-b2g: --- → 1.4?
Comment 1•11 years ago
|
||
What's the impact of this assertion firing?
Updated•11 years ago
|
Flags: needinfo?(anygregor)
Comment 2•11 years ago
|
||
Gregor, please describe the impact for triage.
Reporter | ||
Comment 3•11 years ago
|
||
Ralph, can you explain how bad this assertion is?
Flags: needinfo?(anygregor) → needinfo?(giles)
Reporter | ||
Comment 4•11 years ago
|
||
Maybe this is related to bug 991791?
MemoryReporter is involved in both signatures.
See Also: → 991791
Comment 5•11 years ago
|
||
This assertion means we can't actually seek in a file that we otherwise can seek in.
This assertion is means the media stack failed to find a duration for a file, but it can still seek the media. Meaning it can't actually know the bounds in which it's safe to seek the media, so it can't actually seek.
This is not an OMG WE'RE GOING TO DIE situation.
Comment 6•11 years ago
|
||
Pretty much what Chris said. The assertion fails because the stream is seekable, but mEndTime hasn't been set, so we can't calculate a duration. I can't tell why not from the stack trace, and obviously it's unintended behaviour, but it should not cause crashes. The duration should update when playback starts feeding data through the state machine.
Flags: needinfo?(giles)
Assignee | ||
Updated•10 years ago
|
blocking-b2g: backlog → ---
tracking-b2g:
--- → backlog
Updated•9 years ago
|
Component: Audio/Video → Audio/Video: Playback
Updated•6 years ago
|
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•