about:memory asserts with "ASSERTION: Wrong format?: 'v->mImage->GetFormat() == PLANAR_YCBCR" and kills Fx

RESOLVED INACTIVE

Status

()

RESOLVED INACTIVE
5 years ago
2 months ago

People

(Reporter: markh, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [MemShrink:P3])

STR:

* Open a tab to google.com.au
* Open another tab to about:memory
* Click "measure"

Console shows:

###!!! ASSERTION: Wrong format?: 'v->mImage->GetFormat() == PLANAR_YCBCR', file o:/src/mm/mozilla-hg/mc-socialapi-landing/content/media/MediaDecoderReader.cpp, line 377

Inspecting in the debugger shows v->mImage->mFormat is D3D9_RGB32_TEXTURE.

This only started happening in the last week or so...
Stack trace as shown by MSVC:

>	xul.dll!mozilla::MediaDecoderReader::VideoQueueMemoryFunctor::operator()(void * anObject)  Line 377 + 0x31 bytes	C++
 	xul.dll!nsDeque::ForEach(nsDequeFunctor & aFunctor)  Line 374	C++
 	xul.dll!mozilla::MediaQueue<mozilla::VideoData>::LockedForEach(nsDequeFunctor & aFunctor)  Line 358	C++
 	xul.dll!mozilla::MediaDecoderReader::VideoQueueMemoryInUse()  Line 493	C++
 	xul.dll!mozilla::MediaDecoderStateMachine::VideoQueueMemoryInUse()  Line 248 + 0x1e bytes	C++
 	xul.dll!mozilla::MediaDecoder::VideoQueueMemoryInUse()  Line 1447 + 0x12 bytes	C++
 	xul.dll!mozilla::MediaMemoryReporter::GetDecodedVideoMemory()  Line 98 + 0x21 bytes	C++
 	xul.dll!mozilla::MemoryReporter_MediaDecodedVideoMemory::GetAmount(__int64 * amount)  Line 1706 + 0x8 bytes	C++
 	xul.dll!NS_InvokeByIndex(nsISupports * that, unsigned int methodIndex, unsigned int paramCount, nsXPTCVariant * params)  Line 71	C++
 	xul.dll!CallMethodHelper::Invoke()  Line 2938 + 0x1c bytes	C++
 	xul.dll!CallMethodHelper::Call()  Line 2273 + 0x8 bytes	C++
 	xul.dll!XPCWrappedNative::CallMethod(XPCCallContext & ccx, XPCWrappedNative::CallMode mode)  Line 2239 + 0x16 bytes	C++
 	xul.dll!XPCWrappedNative::GetAttribute(XPCCallContext & ccx)  Line 2761 + 0xe bytes	C++
 	xul.dll!XPC_WN_GetterSetter(JSContext * cx, unsigned int argc, JS::Value * vp)  Line 1535 + 0x9 bytes	C++
 	mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *)* native, const JS::CallArgs & args)  Line 346 + 0x19 bytes	C++
 	mozjs.dll!js::Invoke(JSContext * cx, JS::CallArgs args, js::MaybeConstruct construct)  Line 395 + 0x16 bytes	C++
 	mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 441 + 0x33 bytes	C++
 	mozjs.dll!js::InvokeGetterOrSetter(JSContext * cx, JSObject * obj, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 512 + 0x2f bytes	C++
 	mozjs.dll!js::Shape::get(JSContext * cx, JS::Handle<JSObject *> receiver, JSObject * obj, JSObject * pobj, JS::MutableHandle<JS::Value> vp)  Line 300 + 0x25 bytes	C++
 	mozjs.dll!NativeGetInline<1>(JSContext * cx, JS::Handle<JSObject *> obj, JS::Handle<JSObject *> receiver, JS::Handle<JSObject *> pobj, JS::Handle<js::Shape *> shape, unsigned int getHow, JS::MutableHandle<JS::Value> vp)  Line 3796 + 0x6d bytes	C++
 	mozjs.dll!GetPropertyHelperInline<1>(JSContext * cx, JS::Handle<JSObject *> obj, JS::Handle<JSObject *> receiver, JS::Handle<jsid> id, unsigned int getHow, JS::MutableHandle<JS::Value> vp)  Line 3970 + 0x35 bytes	C++
 	mozjs.dll!js::GetPropertyHelper(JSContext * cx, JS::Handle<JSObject *> obj, JS::Handle<jsid> id, unsigned int getHow, JS::MutableHandle<JS::Value> vp)  Line 3979 + 0x1d bytes	C++
 	mozjs.dll!js::ion::DoGetPropFallback(JSContext * cx, js::ion::BaselineFrame * frame, js::ion::ICGetProp_Fallback * stub, JS::MutableHandle<JS::Value> val, JS::MutableHandle<JS::Value> res)  Line 5366 + 0x2b bytes	C++
 	004b87c7()	
 	004b1abb()	
 	mozjs.dll!EnterBaseline(JSContext * cx, js::StackFrame * fp, void * jitcode, bool osr)  Line 134 + 0x30 bytes	C++
 	mozjs.dll!js::ion::EnterBaselineAtBranch(JSContext * cx, js::StackFrame * fp, unsigned char * pc)  Line 176 + 0x13 bytes	C++
 	mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode, bool useNewType)  Line 1343 + 0x16 bytes	C++
 	mozjs.dll!js::RunScript(JSContext * cx, js::StackFrame * fp)  Line 352 + 0x11 bytes	C++
 	mozjs.dll!js::Invoke(JSContext * cx, JS::CallArgs args, js::MaybeConstruct construct)  Line 408 + 0x12 bytes	C++
 	mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 441 + 0x33 bytes	C++
 	mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * objArg, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 5883 + 0x36 bytes	C++
 	xul.dll!mozilla::dom::EventHandlerNonNull::Call(JSContext * cx, JS::Handle<JSObject *> aThisObj, nsDOMEvent & event, mozilla::ErrorResult & aRv)  Line 41 + 0x3d bytes	C++
 	xul.dll!mozilla::dom::EventHandlerNonNull::Call<nsISupports *>(nsISupports * const & thisObj, nsDOMEvent & event, mozilla::ErrorResult & aRv, mozilla::dom::CallbackObject::ExceptionHandling aExceptionHandling)  Line 58 + 0x2e bytes	C++
 	xul.dll!nsJSEventListener::HandleEvent(nsIDOMEvent * aEvent)  Line 248	C++
 	xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct, const mozilla::dom::CallbackObjectHolder<mozilla::dom::EventListener,nsIDOMEventListener> & aListener, nsIDOMEvent * aDOMEvent, mozilla::dom::EventTarget * aCurrentTarget, nsCxPusher * aPusher)  Line 937 + 0x1d bytes	C++
 	xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, mozilla::dom::EventTarget * aCurrentTarget, nsEventStatus * aEventStatus, nsCxPusher * aPusher)  Line 1009 + 0x1e bytes	C++
 	xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, mozilla::dom::EventTarget * aCurrentTarget, nsEventStatus * aEventStatus, nsCxPusher * aPusher)  Line 329	C++
 	xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher)  Line 204	C++
 	xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor, nsDispatchingCallback * aCallback, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher)  Line 331	C++
 	xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget, nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * aDOMEvent, nsEventStatus * aEventStatus, nsDispatchingCallback * aCallback, nsCOMArray<mozilla::dom::EventTarget> * aTargets)  Line 635 + 0x1c bytes	C++
 	xul.dll!PresShell::HandleEventInternal(nsEvent * aEvent, nsEventStatus * aStatus)  Line 6842 + 0x2b bytes	C++
 	xul.dll!PresShell::HandleEventWithTarget(nsEvent * aEvent, nsIFrame * aFrame, nsIContent * aContent, nsEventStatus * aStatus)  Line 6583 + 0x10 bytes	C++
 	xul.dll!nsEventStateManager::CheckForAndDispatchClick(nsPresContext * aPresContext, nsMouseEvent * aEvent, nsEventStatus * aStatus)  Line 4573 + 0x44 bytes	C++
 	xul.dll!nsEventStateManager::PostHandleEvent(nsPresContext * aPresContext, nsEvent * aEvent, nsIFrame * aTargetFrame, nsEventStatus * aStatus)  Line 3285 + 0x1c bytes	C++
 	xul.dll!PresShell::HandleEventInternal(nsEvent * aEvent, nsEventStatus * aStatus)  Line 6854 + 0x2d bytes	C++
 	xul.dll!PresShell::HandlePositionedEvent(nsIFrame * aTargetFrame, nsGUIEvent * aEvent, nsEventStatus * aEventStatus)  Line 6557 + 0x10 bytes	C++
 	xul.dll!PresShell::HandleEvent(nsIFrame * aFrame, nsGUIEvent * aEvent, bool aDontRetargetEvents, nsEventStatus * aEventStatus)  Line 6356 + 0x14 bytes	C++
 	xul.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent, nsView * aView, nsEventStatus * aStatus)  Line 720	C++
 	xul.dll!nsView::HandleEvent(nsGUIEvent * aEvent, bool aUseAttachedEvents)  Line 1065	C++
 	xul.dll!nsWindow::DispatchEvent(nsGUIEvent * event, nsEventStatus & aStatus)  Line 3578 + 0x1f bytes	C++
 	xul.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event)  Line 3605	C++
 	xul.dll!nsWindow::DispatchMouseEvent(unsigned int aEventType, unsigned int wParam, long lParam, bool aIsContextMenuKey, short aButton, unsigned short aInputSource)  Line 3969 + 0x1d bytes	C++
 	xul.dll!nsWindow::ProcessMessage(unsigned int msg, unsigned int & wParam, long & lParam, long * aRetValue)  Line 4810 + 0x34 bytes	C++
 	xul.dll!nsWindow::WindowProcInternal(HWND__ * hWnd, unsigned int msg, unsigned int wParam, long lParam)  Line 4323 + 0x20 bytes	C++
 	xul.dll!CallWindowProcCrashProtected(long (HWND__ *, unsigned int, unsigned int, long)* wndProc, HWND__ * hWnd, unsigned int msg, unsigned int wParam, long lParam)  Line 32 + 0x13 bytes	C++
 	xul.dll!nsWindow::WindowProc(HWND__ * hWnd, unsigned int msg, unsigned int wParam, long lParam)  Line 4275 + 0x1a bytes	C++
 	user32.dll!_InternalCallWinProc@20()  + 0x23 bytes	
 	user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes	
 	user32.dll!_DispatchMessageWorker@8()  + 0xed bytes	
 	user32.dll!_DispatchMessageW@4()  + 0xf bytes	
 	xul.dll!nsAppShell::ProcessNextNativeEvent(bool mayWait)  Line 224	C++
 	xul.dll!nsBaseAppShell::DoProcessNextNativeEvent(bool mayWait, unsigned int recursionDepth)  Line 139 + 0x12 bytes	C++
 	xul.dll!nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal * thr, bool mayWait, unsigned int recursionDepth)  Line 298 + 0x14 bytes	C++
 	xul.dll!nsThread::ProcessNextEvent(bool mayWait, bool * result)  Line 603	C++
 	xul.dll!NS_ProcessNextEvent(nsIThread * thread, bool mayWait)  Line 238 + 0x17 bytes	C++
 	xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate)  Line 117 + 0xe bytes	C++
 	xul.dll!MessageLoop::RunInternal()  Line 220	C++
 	xul.dll!MessageLoop::RunHandler()  Line 213	C++
 	xul.dll!MessageLoop::Run()  Line 187	C++
 	xul.dll!nsBaseAppShell::Run()  Line 165	C++
 	xul.dll!nsAppShell::Run()  Line 113 + 0x9 bytes	C++
 	xul.dll!nsAppStartup::Run()  Line 269 + 0x1c bytes	C++
 	xul.dll!XREMain::XRE_mainRun()  Line 3856 + 0x22 bytes	C++
 	xul.dll!XREMain::XRE_main(int argc, char * * argv, const nsXREAppData * aAppData)  Line 3924 + 0x8 bytes	C++
 	xul.dll!XRE_main(int argc, char * * argv, const nsXREAppData * aAppData, unsigned int aFlags)  Line 4126 + 0x17 bytes	C++
 	firefox.exe!do_main(int argc, char * * argv, nsIFile * xreDirectory)  Line 272 + 0x19 bytes	C++
 	firefox.exe!NS_internal_main(int argc, char * * argv)  Line 632 + 0x11 bytes	C++
 	firefox.exe!wmain(int argc, wchar_t * * argv)  Line 105 + 0xd bytes	C++
 	firefox.exe!__tmainCRTStartup()  Line 552 + 0x19 bytes	C
 	firefox.exe!wmainCRTStartup()  Line 371	C
 	kernel32.dll!@BaseThreadInitThunk@12()  + 0x12 bytes	
 	ntdll.dll!___RtlUserThreadStart@8()  + 0x27 bytes	
 	ntdll.dll!__RtlUserThreadStart@8()  + 0x1b bytes
This appears to be a bug in the video code's memory reporter.
Component: about:memory → Video/Audio
Product: Toolkit → Core
Whiteboard: [MemShrink]
Whiteboard: [MemShrink] → [MemShrink:P3]
Component: Audio/Video → Audio/Video: Playback

Comment 3

2 months ago
Mass closing do to inactivity.
Feel free to re-open if still needed.
Status: NEW → RESOLVED
Last Resolved: 2 months ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.