Closed Bug 1786259 Opened 2 years ago Closed 2 years ago

Site no longer loads in Safe Mode (gfx.e10s.font-list.shared = false) on Windows

Categories

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

Firefox 101
Unspecified
Windows 10
defect

Tracking

()

VERIFIED FIXED
106 Branch
Tracking Status
relnote-firefox --- 105+
firefox-esr91 --- unaffected
firefox-esr102 --- verified
firefox104 --- wontfix
firefox105 --- verified
firefox106 --- verified

People

(Reporter: ke5trel, Assigned: jfkthame)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

STR:

  1. Enter Safe Mode or set gfx.e10s.font-list.shared = false on Windows 10.
  2. Visit https://razerid.razer.com.

Loading permanently stalls on a blank page with "Read razerid-assets.razerzone.com" at the bottom. The flame graph has the following stack:

NtWaitForAlertByThreadId
RtlAcquireSRWLockExclusive
gfxFontFamily::AddFontEntry(RefPtr<gfxFontEntry>)
gfxPlatformFontList::AddWithLegacyFamilyName(nsTSubstring<char> const&, gfxFontEntry*, FontVisibility)
gfxFontFamily::CheckForLegacyFamilyNames(gfxPlatformFontList*)
gfxPlatformFontList::FindAndAddFamiliesLocked(nsPresContext*, mozilla::StyleGenericFontFamily, nsTSubstring<char> const&, nsTArray<FamilyAndGeneric>*, gfxPlatformFontList::FindFamiliesFlags, gfxFontStyle*, nsAtom*, double)
gfxDWriteFontList::FindAndAddFamiliesLocked(nsPresContext*, mozilla::StyleGenericFontFamily, nsTSubstring<char> const&, nsTArray<FamilyAndGeneric>*, gfxPlatformFontList::FindFamiliesFlags, gfxFontStyle*, nsAtom*, double)
gfxFontGroup::BuildFontList()

Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=95428e3fa48ed01f0ee28cc2cbb5c88ead83c933&tochange=a38c915b806d90681a68d37a97494e1f2c9eac38

Regressed by Bug 1756474

:jfkthame, since you are the author of the regressor, bug 1756474, could you take a look?
For more information, please visit auto_nag documentation.

Flags: needinfo?(jfkthame)
Severity: -- → S2
Priority: -- → P2

Hey Jonathan, just checking if there are any updates on this one and if you'd managed to take a look.

Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
Pushed by jkew@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/34da92947068 Avoid potential deadlock via AddWithLegacyFamilyName when shared-fontlist is disabled (incl. safe mode). r=gfx-reviewers,aosmond

Comment on attachment 9294609 [details]
Bug 1786259 - Avoid potential deadlock via AddWithLegacyFamilyName when shared-fontlist is disabled (incl. safe mode). r=#gfx-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: Possible content-process hang (deadlock) when running in Safe Mode (depending on font configuration and site content)
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: STR in comment 0.
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Simple change reduces the scope of the read-lock to the minimum required, to eliminate risk of deadlocking in a subsequently-called method.
  • String changes made/needed:
  • Is Android affected?: No
Flags: needinfo?(jfkthame)
Attachment #9294609 - Flags: approval-mozilla-beta?
Flags: qe-verify+
Attachment #9294609 - Flags: approval-mozilla-beta? → approval-mozilla-release?
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 106 Branch
QA Whiteboard: [qa-triaged]

Hello! Reproduced the issue with Firefox 106.0a1 (20220822190304) on Windows 10x64. Loading https://razerid.razer.com/ in Safe mode or with gfx.e10s.font-list.shared = false will result in a permanent stall on a blank page.

The issue is verified fixed with Firefox 106.0a1 (20220914213649) on Windows 10x64, macOS 11 and Ubuntu 21.1. The https://razerid.razer.com/ page loads as expected while in Safe mode or while gfx.e10s.font-list.shared = false.

Comment on attachment 9294609 [details]
Bug 1786259 - Avoid potential deadlock via AddWithLegacyFamilyName when shared-fontlist is disabled (incl. safe mode). r=#gfx-reviewers

Fixes a safe mode deadlock on some sites. Approved for 105.0.2.

Attachment #9294609 - Flags: approval-mozilla-release? → approval-mozilla-release+

Seems like it would be a good idea to get this onto ESR as well, especially as it grafts cleanly. WDYT, Jonathan? :)

Flags: needinfo?(jfkthame)

Comment on attachment 9294609 [details]
Bug 1786259 - Avoid potential deadlock via AddWithLegacyFamilyName when shared-fontlist is disabled (incl. safe mode). r=#gfx-reviewers

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Potential deadlock on some sites (depending on fonts installed / used) in "Safe" Mode
  • User impact if declined:
  • Fix Landed on Version:
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Simple patch to make a local copy of data to avoid risk of deadlock during processing.
Flags: needinfo?(jfkthame)
Attachment #9294609 - Flags: approval-mozilla-esr102?

Comment on attachment 9294609 [details]
Bug 1786259 - Avoid potential deadlock via AddWithLegacyFamilyName when shared-fontlist is disabled (incl. safe mode). r=#gfx-reviewers

Approved for 102.4esr.

Attachment #9294609 - Flags: approval-mozilla-esr102? → approval-mozilla-esr102+

Added to the 105.0.2 release notes:

Fixed a possible deadlock when loading some sites in Troubleshoot Mode

Verified fixed with Firefox 105.0.2(20221003135607) and Firefox 102.04.0esr(20221003174742) from comment 13 on Windows 10x64, macOS 11 and Ubuntu 22.04. The https://razerid.razer.com/ webpage is loaded as expected after setting gfx.e10s.font-list.shared:false or after entering Troubleshoot Mode.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triaged]
Flags: qe-verify+ → qe-verify?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: