Crash in [@ shutdownhang | __pthread_cond_wait | <name omitted> | <name omitted> | mozilla::layers::CompositorThreadHolder::Shutdown]
Categories
(Core :: Graphics, defect, P3)
Tracking
()
People
(Reporter: emilghitta, Unassigned)
References
(Blocks 2 open bugs)
Details
(Keywords: crash)
Crash Data
This bug is for crash report bp-98dc2471-1bb2-4acf-8d14-346080200305.
Top 10 frames of crashing thread:
0 libpthread-2.27.so __pthread_cond_wait /build/glibc-OTsEL5/glibc-2.27/nptl/pthread_cond_wait.c:655
1 firefox-bin <name omitted> mozglue/misc/ConditionVariable_posix.cpp:109
2 libxul.so mozilla::ThreadEventQueue<mozilla::PrioritizedEventQueue>::GetEvent xpcom/threads/CondVar.h:57
3 libxul.so nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1148
4 libxul.so <name omitted> xpcom/threads/nsThreadUtils.cpp:486
5 libxul.so mozilla::layers::CompositorThreadHolder::Shutdown gfx/layers/ipc/CompositorThread.cpp:137
6 libxul.so gfxPlatform::ShutdownLayersIPC gfx/thebes/gfxPlatform.cpp:1419
7 libxul.so mozilla::ShutdownXPCOM xpcom/build/XPCOMInit.cpp:629
8 libxul.so ScopedXPCOMStartup::~ScopedXPCOMStartup toolkit/xre/nsAppRunner.cpp:1225
9 libxul.so XREMain::XRE_main toolkit/xre/nsAppRunner.cpp:4769
Affected Platforms
- Ubuntu 18.04 64bit
Affected Versions
- Firefox 74.0 (BuildId: 20200304223017)
- Firefox 73.0.1
- ESR 68.6.0(BuildId: 20200302183506)
This was also encountered while performing the following updates:
- Updates from 74.0 (BuildId:20200302184608) to 74.0 (BuildId:20200304223017) -via release-localtest channel.
- Updates from 73.0 to 74.0 (BuildId:20200304223017) -via release-localtest channel.
- Updates from 73.0 to 73.0.1.
Unaffected Versions
- Firefox 75.0a1 (BuildId:20200304161940).
Steps to reproduce
- Launch Firefox.
- Update Firefox via the "About Firefox" panel.
Or
- Launch Firefox.
- Restart via browser console.
Expected Result
- Firefox updates successfully.
Actual Result
- Firefox crashes.
Notes
- I didn't managed to reproduce this issue on other Ubuntu 18.04 machines.
| Reporter | ||
Updated•1 year ago
|
Updated•1 year ago
|
Comment 1•1 year ago
|
||
Gian-Carlo, can you or someone on your team try to reproduce and figure out what's going on? Thank you.
Updated•1 year ago
|
Comment 2•1 year ago
|
||
It's a Compositor Shutdown hang that happens on one specific Ubuntu 18.04 machine but not on others (as per reporter). So likely it's related to the graphics and driver? (Adapter Device ID HD Graphics 530 with Mesa 18.2.8.0)
Comment 3•1 year ago
|
||
Moving to Graphics component since this is a Compositor Shutdown hang.
kmag says we should get rid of nested event loops on shutdown. There is a recommended mechanism for that, though I don't remember what he said it was called.
Updated•1 year ago
|
Comment 4•1 year ago
|
||
Jessie, do we have the graphics hardware mentioned in comment 2 in the Toronto office?
Comment 5•1 year ago
|
||
Actually, wait, I have P530, let me see if I can reproduce this myself...
Comment 6•1 year ago
|
||
74.0 was able to update itself fine on my machine (Fedora 30, Mesa 19, Intel P530 graphics). I think most Linux users are going to get upgrades through their distribution.
Nical, if you have any insights into this, that'd be great.
Comment 7•1 year ago
|
||
In both reports the compositor thread is blocked inside of mozilla::ipc::MessageChannel::SynchronouslyClose() which "tells the IO thread to close the channel and wait for it to ACK" according to a comment in the code.
I am not very familiar with IPDL internals but the first question I would try to answer is what could cause the IO thread to hang or stop answering messages (especially synchronous ones).
gfxPlatform::ShutdownLayersIPC() runs before the shutdown of xpcom thread and IPDL machinery so messaging threads is expected to still be functional at this stage.
Bugbug thinks this bug is a regression, but please revert this change in case of error.
Updated•1 year ago
|
Comment 9•1 year ago
|
||
According to the crash report, Beta 75 and Nightly 76 are also affected.
Updated•1 year ago
|
Comment 10•1 year ago
|
||
It's not clear when and if this is a regression. Unmarking until we find out otherwise.
Updated•1 year ago
|
Description
•