Open Bug 1352475 Opened 7 years ago Updated 2 years ago

Ensure critical notes on the render thread actually get saved in time

Categories

(Core :: Graphics: WebRender, defect, P3)

Other Branch
defect

Tracking

()

Tracking Status
firefox56 --- unaffected
firefox57 --- unaffected

People

(Reporter: kats, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [gfx-noted])

In bug 1350986 I added some calls to gfxCriticalNote to diagnose webrender startup crashes. However those notes don't appear in crash reports. I suspect what is happening is that the critical note is created on the GPU Process/RenderThread, which means it gets reposted as a runnable to the GPU Process/main thread at [1]. Meanwhile, the RenderThread unwinds back to the compositor thread which then crashes. This effectively means there is a race between the main thread actually saving that critical note (by sending it over PGPU to the parent process) and the compositor thread crashing at [2] because api is null, and this might explain the missing critical note.

[1] http://searchfox.org/mozilla-central/rev/7419b368156a6efa24777b21b0e5706be89a9c2f/gfx/thebes/gfxPlatform.cpp#355
[2] http://searchfox.org/mozilla-central/rev/7419b368156a6efa24777b21b0e5706be89a9c2f/gfx/layers/ipc/CompositorBridgeParent.cpp#1599
I wrote a patch and pushed it to try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=fd1d1a2f7bfba6eb9778aa6cdcd83ef58f585e2b

Hopefully using that try build I can generate some crash reports and see what pops out.
Unassigning things I'm not really working on
Assignee: bugmail → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.