Closed Bug 1566333 Opened 5 years ago Closed 5 years ago

Crash in [@ mozilla::ipc::MessageChannel::Send | mozilla::dom::PContentChild::SendInitializeFamily]

Categories

(Core :: Layout: Text and Fonts, defect, P2)

x86
Windows 7
defect

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- disabled
firefox68 --- disabled
firefox69 --- disabled
firefox70 --- fixed

People

(Reporter: over68, Assigned: jfkthame)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

Steps to reproduce:

  1. Enable "Restore previous session" in about:preferences
  2. Set gfx.e10s.font-list.shared to true.
  3. Open https://bugzilla.mozilla.org/query.cgi?format=advanced.
  4. Restart Firefox.

Actual results:

The tab crashed.

Crash report: bp-a84af803-fe2a-42d7-8e73-159560190715

Top 10 frames of crashing thread:

0 xul.dll mozilla::ipc::MessageChannel::Send ipc/glue/MessageChannel.cpp
1 xul.dll mozilla::dom::PContentChild::SendInitializeFamily ipc/ipdl/PContentChild.cpp:5109
2 xul.dll gfxPlatformFontList::InitializeFamily gfx/thebes/gfxPlatformFontList.cpp:1048
3 xul.dll mozilla::fontlist::FontList::SearchForLocalFace gfx/thebes/SharedFontList.cpp:795
4 xul.dll gfxPlatformFontList::LookupInSharedFaceNameList gfx/thebes/gfxPlatformFontList.cpp:621
5 xul.dll class gfxFontEntry* gfxDWriteFontList::LookupLocalFont gfx/thebes/gfxDWriteFontList.cpp:876
6 xul.dll gfxPlatform::LookupLocalFont gfx/thebes/gfxPlatform.cpp:1849
7 xul.dll gfxUserFontEntry::DoLoadNextSrc gfx/thebes/gfxUserFontSet.cpp:513
8 xul.dll gfxFontGroup::GetFirstValidFont gfx/thebes/gfxTextRun.cpp:2069
9 xul.dll nsFontMetrics::XHeight gfx/src/nsFontMetrics.cpp:163

Flags: needinfo?(jfkthame)
Blocks: 1533462
Keywords: regression

While there are several hundred crashes in this signature, it looks like only 3 total installations so far.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: crash
Version: 70 Branch → Trunk

OK, I was able to reproduce this; it occurs (though not 100% reliably) when stylo tries to resolve a src:local @font-face early in the session, before the post-startup font loader has done its work. In this case we may need to explicitly initialize font families in order to examine their face names, but we're not allowed to do the InitializeFamily IPC message from the stylo thread.

I think we can fix this by just posting a runnable to the main thread instead when this happens. This may mean that a given src:local lookup fails temporarily, until the main thread has had a chance to process the runnable, but that'll be a non-critical and transient issue.

Flags: needinfo?(jfkthame)
Priority: -- → P2
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fe03bafcc156
Don't try to send InitializeFamily IPC message from a stylo thread, delegate it to a main-thread runnable instead. r=jwatt
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
Assignee: nobody → jfkthame
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: