Closed
Bug 1494556
Opened 7 years ago
Closed 7 years ago
Crash in TimerThread::RemoveTimer
Categories
(Core :: WebVR, defect)
Tracking
()
RESOLVED
FIXED
mozilla64
| Tracking | Status | |
|---|---|---|
| firefox-esr60 | --- | unaffected |
| firefox62 | --- | unaffected |
| firefox63 | --- | unaffected |
| firefox64 | --- | fixed |
People
(Reporter: calixte, Assigned: kip)
References
(Depends on 1 open bug, Blocks 1 open bug)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
This bug was filed from the Socorro interface and is
report bp-f04a90c1-d998-4c00-a44a-d88350180927.
=============================================================
Top 10 frames of crashing thread:
0 XUL TimerThread::RemoveTimer mfbt/RefPtr.h:332
1 XUL nsTimerImpl::CancelImpl xpcom/threads/nsTimerImpl.cpp:522
2 XUL nsTimer::Cancel xpcom/threads/nsTimerImpl.cpp:509
3 XUL mozilla::gfx::VRListenerThreadHolder::Shutdown gfx/vr/VRManager.cpp:302
4 XUL gfxPlatform::ShutdownLayersIPC gfx/thebes/gfxPlatform.cpp:1181
5 XUL mozilla::ShutdownXPCOM xpcom/build/XPCOMInit.cpp:898
6 XUL ScopedXPCOMStartup::~ScopedXPCOMStartup xpcom/build/XPCOMInit.cpp:817
7 XUL XREMain::XRE_main toolkit/xre/nsAppRunner.cpp:1410
8 XUL mozilla::BootstrapImpl::XRE_main toolkit/xre/nsAppRunner.cpp:5018
9 firefox main browser/app/nsBrowserApp.cpp:233
=============================================================
There are 2 crashes (from 2 installations) in nightly 64 starting with buildid 20180926132058. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1473397.
[1] https://hg.mozilla.org/mozilla-central/rev?node=49f48ff493c6
Flags: needinfo?(kgilbert)
| Assignee | ||
Comment 1•7 years ago
|
||
I'll take this and investigate. This may be related to Bug 1494141 also.
Assignee: nobody → kgilbert
Flags: needinfo?(kgilbert)
| Assignee | ||
Comment 2•7 years ago
|
||
We are refactoring much of the code in gfx/vr, moving most of the code that runs in the VRListenerThread into it's own process. The remaining code will be non-blocking once this refactoring is complete (estimated 1 week).
I suspect the simplest way to solve this issue (and Bug 1494141), may be to simply remove the VRListenerThread and the related code starting and stopping this thread. If this is done prior to completion of the refactoring for Bug 1473399 (Enable VRService thread by default), there would be a regression in responsiveness during detection of VR hardware due to blocking API calls moving off the thread.
This regression would affect only VR users, causing a momentary stutter when starting a WebVR site for the first time in a session, and be resolved once Bug 1473399 lands shortly.
I feel that this may be a reasonable compromise rather than fixing code that is about to be deleted anyways, allowing the proper fix in Bug 1473399 to land sooner
| Assignee | ||
Comment 3•7 years ago
|
||
I'm preparing a patch that removes the VRListenerThread, and will land it here.
I've also added a follow-up bug to fix the regression caused by removing the VRListener thread:
Added Bug 1495104 (VRSystemManagerExternal::Enumerate should be non-blocking)
| Assignee | ||
Comment 4•7 years ago
|
||
We are refactoring much of the code in gfx/vr, moving
most of the code that runs in the VRListenerThread into
it's own process. The remaining code will be non-blocking
once this refactoring is complete.
In order to resolve some shutdown crashes, it is simpler
to remove the VRListenerThread and the related code
starting and stopping this thread. If this is done
prior to completion of the refactoring for Bug 1473399
(Enable VRService thread by default), there would be a
regression in responsiveness during detection of VR
hardware due to blocking API calls moving off the thread.
| Assignee | ||
Comment 5•7 years ago
|
||
Added a patch to remove the VRListener thread. I am testing now to see if it works on real hardware.
Pushed to try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=524241af7d1a7d180c934772f8b12c4742081ec6
| Assignee | ||
Comment 6•7 years ago
|
||
Updated patch to correct try failures.
New try push:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=beaca354028b32cc9c988abb7a97a2321bb55b20
| Comment hidden (Intermittent Failures Robot) |
| Assignee | ||
Comment 8•7 years ago
|
||
Try push now looks clean.
Have rebased patch. Will do a sanity check to ensure VR support doesn't regress while using real hardware before landing.
| Assignee | ||
Comment 9•7 years ago
|
||
I have confirmed that this patch works on hardware (Tested with a Windows MR headset on OpenVR)
Comment 10•7 years ago
|
||
Comment on attachment 9013021 [details]
Bug 1494556 - Remove VRListenerThread
Daosheng Mu[:daoshengmu] has approved the revision.
Attachment #9013021 -
Flags: review+
Comment 11•7 years ago
|
||
Pushed by kgilbert@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e03ce4ca0e44
Remove VRListenerThread r=daoshengmu
Comment 12•7 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in
before you can comment on or make changes to this bug.
Description
•