Closed Bug 1415609 Opened 2 years ago Closed 2 years ago

Crash in mozilla::gfx::RecordedScaledFontCreationByIndex::PlayEvent

Categories

(Core :: Graphics: WebRender, defect, P1, critical)

x86_64
Linux
defect

Tracking

()

VERIFIED FIXED
mozilla58
Tracking Status
firefox-esr52 --- unaffected
firefox56 --- unaffected
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: darkspirit, Assigned: lsalzman)

References

(Blocks 1 open bug)

Details

(Keywords: crash, nightly-community, regression, Whiteboard: [wr-mvp])

Crash Data

Attachments

(1 file)

Nightly 58 x64 20171108110838 de_DE f63559d7e6a570e4e73ba367964099394248e18d @ Debian Testing (KDE, Radeon RX480)

This happened while testing bug 1415272.

bp-65ab3605-c8a2-4dfd-b650-a12610171108 08.11.17 18:27
[@ mozilla::gfx::RecordedScaledFontCreationByIndex::PlayEvent ]

bp-2cbc91a4-520d-4460-8d7f-31f730171108 08.11.17 18:27
[@ mozilla::ipc::MessageChannel::Send | mozilla::layers::PAPZCTreeManagerChild::SendUpdateZoomConstraints ]
See Also: → 1415610
This crash only happened in my main profile.

I can reproduce this in a fresh profile with 
layers.acceleration.force-enabled, gfx.webrender.enabled, gfx.webrender.blob-images, layers.gpu-process.enabled
on https://belen-albeza.github.io/scroll-demos/parallax.html.

The combination of blob-images and gpu-process is the problem. This looks like a regression.
> I can reproduce this in a fresh profile with 
> layers.acceleration.force-enabled, gfx.webrender.enabled, gfx.webrender.blob-images, layers.gpu-process.enabled

about:support
> (#0) 		GP+[GFX1 38]: UnscaledFont lookup failed for key |0|.
> (#4) 		CP+[GFX1-]: Receive IPC close with reason=AbnormalShutdown
> (#5) Error	Receive IPC close with reason=AbnormalShutdown
> (#6) Error	Receive IPC close with reason=AbnormalShutdown
> (#7) Error	Receive IPC close with reason=AbnormalShutdown
> (#8) 		CP+[GFX1-]: Receive IPC close with reason=AbnormalShutdown
> (#9) 		GP+[GFX1 38]: UnscaledFont lookup failed for key |0|.
> (#10) 	GP+[GFX1 38]: UnscaledFont lookup failed for key |0|.
> (#11) 	GP+[GFX1 38]: UnscaledFont lookup failed for key |0|.
> (#12) 	GP+[GFX1 38]: UnscaledFont lookup failed for key |0|.
> (#13) Error	Receive IPC close with reason=AbnormalShutdown
> (#14) Error	GPU process disabled after 2 attempts
> (#15) 	CP+[GFX1-]: Receive IPC close with reason=AbnormalShutdown
> (#16) 	CP+[GFX1-]: Receive IPC close with reason=AbnormalShutdown
> (#17) Error	Compositors might be mixed (5,2)
> (#18) 	CP+[GFX1-]: Receive IPC close with reason=AbnormalShutdown
https://belen-albeza.github.io/scroll-demos/parallax.html

We have a bad build if
* the page is white
* there is a fallback to OpenGL compositing on about:support#graphics-features-tbody
(click into the locationbar again and press enter to get to the anchor)
* (there are Errors under about:support#graphics-decisions-tbody)

layers.acceleration.force-enabled, gfx.webrender.enabled, gfx.webrender.blob-images, layers.gpu-process.enabled
mozregression --good 2017-10-31 --bad 2017-11-08 --profile-persistence clone-first
> 16:19.08 INFO: Last good revision: af56f51a55b1492f2fc22b2bf3a61cf69cc89d57
> 16:19.08 INFO: First bad revision: b80f6e02f7571660442822b2c8800a6031a609f7
> 16:19.08 INFO: Pushlog:
> https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=af56f51a55b1492f2fc22b2bf3a61cf69cc89d57&tochange=b80f6e02f7571660442822b2c8800a6031a609f7

> Lee Salzman — Bug 1412545 - avoid race condition when setting Cairo ft font user data. r=jrmuizel
Blocks: 1412545
Has Regression Range: --- → yes
Has STR: --- → yes
Keywords: regression
There are even two older crashes from Windows 10 x64 + gpu-process + webrender:
build 2017-10-30_103605 bp-0176f07d-2d90-4289-a52b-08ea10171101
build 2017-11-01_104430 bp-9257b998-d051-442b-a2a4-d6c880171101
(same crash stack, only different line numbers in gfx/2d/RecordedEventImpl.h)
Priority: -- → P2
Whiteboard: [wr-mvp] [triage] → [wr-mvp]
Severity: normal → critical
When we removed the hack that assigned an FT_Library instance per blob image thread, we also accidentally broke this particular use case. The GPU process never actually initialized an FT_Library, since gfxPlatform::Init() never gets called, which is where that would normally happen.

To make the GPU process happy, we need to initialize an FT_Library for Factory.
Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Attachment #8926566 - Flags: review?(jmuizelaar)
Attachment #8926566 - Flags: review?(jmuizelaar) → review+
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3acb30b37718
ensure the GPU process initializes the FreeType library. r=jrmuizel
I made much noise on Socorro and will disable blob-images from now until tomorrow.
Crash Signature: [@ mozilla::gfx::RecordedScaledFontCreationByIndex::PlayEvent ] → [@ mozilla::gfx::RecordedScaledFontCreationByIndex::PlayEvent ] [@ @0x7f56edfc4534 ] [@ @0x7fb00d0c4534 ] [@ @0x7f7f031c4534 ] [@ @0x7f45d85c4534 ]
Priority: P2 → P1
https://hg.mozilla.org/mozilla-central/rev/3acb30b37718
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment 0 and comment 1)
> Nightly 58 x64 20171108110838 de_DE f63559d7e6a570e4e73ba367964099394248e18d @ Debian Testing (KDE, Radeon RX480)
> I can reproduce this in a fresh profile with 
> layers.acceleration.force-enabled, gfx.webrender.enabled, gfx.webrender.blob-images, layers.gpu-process.enabled
> on https://belen-albeza.github.io/scroll-demos/parallax.html.

Verified fixed in
Nightly 58 x64 20171109100107 de_DE d16b52f5d1955192c42c7b5c5da4e05a7dffef27 @ Debian Testing (KDE, Radeon RX480). Thank you!
fresh profile: layers.gpu-process.enabled, layers.acceleration.force-enabled, gfx.webrender.enabled, gfx.webrender.blob-images

That website loads fast and without any crash now. (Remaining problems are tracked in bug 1415272 comment 1 A.)
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.