Crash in [@ shutdownhang | mozilla::ipc::MessageChannel::WaitForSyncNotify | mozilla::ipc::MessageChannel::Send | mozilla::ipc::IProtocol::ChannelSend | mozilla::gfx::PGPUChild::SendGetDeviceStatus]
Categories
(Core :: Graphics, defect, P3)
Tracking
()
People
(Reporter: jstutte, Assigned: aosmond)
References
(Blocks 1 open bug)
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
Crash report: https://crash-stats.mozilla.org/report/index/1a96a87d-4e69-462a-8587-fe5690240219
MOZ_CRASH Reason: Shutdown hanging at step AppShutdown. Something is blocking the main-thread.
Top 10 frames of crashing thread:
0 ntdll.dll ZwWaitForAlertByThreadId
1 ntdll.dll RtlSleepConditionVariableSRW
2 KERNELBASE.dll SleepConditionVariableSRW
3 mozglue.dll mozilla::detail::ConditionVariableImpl::wait mozglue/misc/ConditionVariable_windows.cpp:50
3 mozglue.dll mozilla::detail::ConditionVariableImpl::wait_for mozglue/misc/ConditionVariable_windows.cpp:58
4 xul.dll mozilla::OffTheBooksCondVar::Wait xpcom/threads/CondVar.h:65
4 xul.dll mozilla::Monitor::Wait xpcom/threads/Monitor.h:39
4 xul.dll mozilla::ipc::MessageChannel::WaitForSyncNotify ipc/glue/WindowsMessageLoop.cpp:857
5 xul.dll mozilla::ipc::MessageChannel::Send ipc/glue/MessageChannel.cpp:1343
6 xul.dll mozilla::ipc::IProtocol::ChannelSend ipc/glue/ProtocolUtils.cpp:534
This is the same signature as bug 1827222 was.
Comment 1•9 months ago
|
||
The severity field is not set for this bug.
:bhood, could you have a look please?
For more information, please visit BugBot documentation.
Updated•6 months ago
|
Comment 2•6 months ago
|
||
We're waiting on the gpu process. Without crash reports from that process it's hard to know what's going on.
Andrew, any ideas what we might do here?
Updated•6 months ago
|
Assignee | ||
Comment 3•6 months ago
|
||
All of the processes appear to be in some state of shutdown. Mostly quit-application
, profile-change-teardown
and profile-before-change
, all of which are before xpcom-shutdown
when we would refuse to setup the GPU process. If the GPU process was lost during or just prior to the shutdown process beginning, perhaps we should consider not restarting it.
Our options would be:
- Just let it fallback to the parent process.
- Try forcing us down the dummy FallbackRenderer path
Assignee | ||
Comment 4•6 months ago
|
||
Either way, we will need to adjust the shutdown checks in GPUProcessManager:
https://searchfox.org/mozilla-central/rev/010ccb86d48fa23b2874d1a7cbe6957ec78538c3/gfx/ipc/GPUProcessManager.cpp#231
https://searchfox.org/mozilla-central/rev/010ccb86d48fa23b2874d1a7cbe6957ec78538c3/gfx/ipc/GPUProcessManager.cpp#358
https://searchfox.org/mozilla-central/rev/010ccb86d48fa23b2874d1a7cbe6957ec78538c3/gfx/ipc/GPUProcessManager.cpp#374
Assignee | ||
Comment 5•6 months ago
|
||
This patch makes it so that the GPU process setup requires us to not be
in any shutdown state, whereas before we would do this only once
reaching XPCOMShutdown (much later in the steps). Furthermore, we also
no longer block on waiting to finish setting up a GPU process during
shutdown. Now instead we actually teardown the process entirely to
ensure it is cleaned up.
Note that if rendering is already in the parent process, or if the GPU
process is ready, it will continue to work as before.
Updated•6 months ago
|
Updated•6 months ago
|
Description
•