shutdownhang in mozilla::MediaShutdownManager::Shutdown() with a threads in AsyncTransactionTracker::WaitComplete() and YCbCrKeepAliveD3D11 | TextureChild::ActorDestroy()

RESOLVED WORKSFORME

Status

()

Core
Audio/Video: Playback
P1
normal
RESOLVED WORKSFORME
3 years ago
2 years ago

People

(Reporter: karlt, Unassigned)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(firefox41 affected)

Details

(Reporter)

Description

3 years ago
These are 39.0b3 reports:

https://crash-stats.mozilla.com/report/index/66dd14b2-51b1-4089-8b7c-abb8d2150608#allthreads
https://crash-stats.mozilla.com/report/index/7a7d8fc0-29b4-4573-bfbb-8f8e62150608#allthreads

Thread 37 or 38:

7 	xul.dll 	mozilla::layers::AsyncTransactionTracker::WaitComplete() 	gfx/layers/ipc/AsyncTransactionTracker.cpp
8 	xul.dll 	mozilla::layers::ImageBridgeChild::FlushAllImages(mozilla::layers::ImageClient*, mozilla::layers::ImageContainer*, bool) 	gfx/layers/ipc/ImageBridgeChild.cpp
9 	xul.dll 	mozilla::layers::ImageContainer::ClearAllImages() 	gfx/layers/ImageContainer.cpp
10 	xul.dll 	mozilla::VideoFrameContainer::ClearCurrentFrame(bool) 	dom/media/VideoFrameContainer.cpp
11 	xul.dll 	mozilla::MP4Reader::ReleaseMediaResources() 	dom/media/fmp4/MP4Reader.cpp
12 	xul.dll 	mozilla::MediaDecoderReader::Shutdown() 	dom/media/MediaDecoderReader.cpp
13 	xul.dll 	mozilla::MP4Reader::Shutdown() 	dom/media/fmp4/MP4Reader.cpp
14 	xul.dll 	mozilla::MediaDecoderStateMachine::ShutdownReader() 	dom/media/MediaDecoderStateMachine.cpp

Thread 25:

26 	d3d11.dll 	CLayeredObjectWithCLS<CSampler>::CContainedObject::Release() 	
27 	xul.dll 	nsRefPtr<nsParserBase>::~nsRefPtr<nsParserBase>() 	xpcom/base/nsRefPtr.h
28 	xul.dll 	`vector destructor iterator'(void*, unsigned int, int, void (*)(void*)) 	
29 	xul.dll 	mozilla::layers::YCbCrKeepAliveD3D11::`scalar deleting destructor'(unsigned int) 	
30 	xul.dll 	mozilla::UniquePtr<mozilla::layers::KeepAlive, mozilla::DefaultDelete<mozilla::layers::KeepAlive> >::reset(mozilla::layers::KeepAlive*) 	mfbt/UniquePtr.h
31 	xul.dll 	mozilla::layers::TextureChild::ActorDestroy(mozilla::ipc::IProtocolManager<mozilla::ipc::IProtocol>::ActorDestroyReason) 	gfx/layers/client/TextureClient.cpp
32 	xul.dll 	mozilla::layers::PTextureChild::DestroySubtree(mozilla::ipc::IProtocolManager<mozilla::ipc::IProtocol>::ActorDestroyReason) 	obj-firefox/ipc/ipdl/PTextureChild.cpp
33 	xul.dll 	mozilla::layers::PTextureChild::OnMessageReceived(IPC::Message const&) 	obj-firefox/ipc/ipdl/PTextureChild.cpp
34 	xul.dll 	mozilla::layers::PImageBridgeChild::OnMessageReceived(IPC::Message const&) 	obj-firefox/ipc/ipdl/PImageBridgeChild.cpp

There is a 50 second timeout on the wait, but the hang detector kicks in after
60 seconds.

http://hg.mozilla.org/releases/mozilla-beta/annotate/d51242ae365d/gfx/layers/ipc/AsyncTransactionTracker.cpp#l38

I first saw this on 40.0a2 but bug 1146315 seems to indicate this was an
existing problem.

https://crash-stats.mozilla.com/report/index/530d494e-d7a7-4928-b7df-21e8c2150607#allthreads
https://crash-stats.mozilla.com/report/index/d12e2e11-e90c-4970-8bcc-b61b72150606#allthreads
Component: Audio/Video → Audio/Video: Playback
Priority: -- → P1
MediaShutdownManager has been overhauled using async shutdown API. I think we can close this bug now and reopen it should any shtudown hang happen in the future.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.