Open Bug 1880845 Opened 9 months ago Updated 6 months ago

Crash in [@ shutdownhang | mozilla::ipc::MessageChannel::WaitForSyncNotify | mozilla::ipc::MessageChannel::Send | mozilla::ipc::IProtocol::ChannelSend | mozilla::gfx::PGPUChild::SendGetDeviceStatus]

Categories

(Core :: Graphics, defect, P3)

Unspecified
Windows 10
defect

Tracking

()

ASSIGNED

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.

Blocks: 1880819
See Also: → 1827222

The severity field is not set for this bug.
:bhood, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(bhood)
Blocks: gfx-triage
Flags: needinfo?(bhood)

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?

Flags: needinfo?(aosmond)
Severity: -- → S3
Priority: -- → P3

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:

  1. Just let it fallback to the parent process.
  2. Try forcing us down the dummy FallbackRenderer path

https://searchfox.org/mozilla-central/rev/010ccb86d48fa23b2874d1a7cbe6957ec78538c3/widget/nsBaseWidget.cpp#1601

Flags: needinfo?(aosmond)

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.

Assignee: nobody → aosmond
Status: NEW → ASSIGNED
No longer blocks: gfx-triage
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: