Open Bug 1719421 Opened 3 years ago Updated 1 year ago

More crashes in [@ shutdownhang | (anonymous namespace)::TrueTypeFontMetricsBuilder::GetBlackBox]

Categories

(Core :: Graphics: Text, defect)

x86
Windows 7
defect

Tracking

()

People

(Reporter: jcristau, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Crash report: https://crash-stats.mozilla.org/report/index/dc7c6ddd-89df-4036-85f4-2b4730210707

MOZ_CRASH Reason: Shutdown hanging at step quit-application. Something is blocking the main-thread.

Top 10 frames of crashing thread:

0 dwrite.dll struct `anonymous namespace'::FontMetricsBuilder::BoundingBox __thiscall `anonymous namespace'::TrueTypeFontMetricsBuilder::GetBlackBox 
1 dwrite.dll virtual struct DesignGlyphMetrics __thiscall `anonymous namespace'::TrueTypeFontMetricsBuilder::GetGlyphMetrics 
2 dwrite.dll void const* __thiscall FontFaceRegionBuilder::Impl::WriteRegionInternal const 
3 dwrite.dll void const* __thiscall FontFaceRegionBuilder::Impl::WriteRegion const 
4 dwrite.dll virtual unsigned int __thiscall FontFaceElement::AddToCacheImpl 
5 dwrite.dll void __thiscall CacheWriter::AddElement 
6 dwrite.dll void __thiscall ClientSideCacheContext::ClientLookup 
7 dwrite.dll virtual void __thiscall ClientSideCacheContext::InitializeElementImpl 
8 dwrite.dll __thiscall DWriteFontFace::DWriteFontFace 
9 dwrite.dll static class ComPtr<class DWriteFontFace> __stdcall DWriteFontFace::CreateFromKey 

We're still getting a number of crashes with this signature after the fix for bug 1689379. As before all on Windows 7, mostly 32-bit.

Severity: -- → S2
Severity: S2 → S3

The bug is linked to a topcrash signature, which matches the following criterion:

  • Top 20 desktop browser crashes on beta

:lsalzman, could you consider increasing the severity of this top-crash bug?

For more information, please visit auto_nag documentation.

Flags: needinfo?(lsalzman)
Keywords: topcrash

Jonathan, after a brief glance at the crashes, these seem to be on Windows 7 within LoadCmapsRunnable?

Flags: needinfo?(lsalzman) → needinfo?(jfkthame)

I suspect what we're seeing here is the old Win7 DirectWrite version taking a very long time to handle a DWriteFont::CreateFontFace call because it decides it needs to rebuild all its internal caches, or something like that. So the single API call ends up blocking for many seconds (it gets really bad if the disk is busy, so that DW is contending with other things for access to all the font files), and we detect this as a hang.

I was going to suggest that we should at least bail out of LoadCmapsRunnable if we're in shutdown, rather than keep trying to load more data, but I see it already registers to observe the will-shutdown notification and cancels itself. But if we're blocked in a single API call to DirectWrite, we don't even get a chance to do that.

A surprisingly large proportion of the reports seem to be "original" Win7 (6.1.7600), without even Service Pack 1 installed. These are likely old, low-powered machines with slow hard disks, and they have an old DirectWrite.... I don't think there's much we can do to help them when DW bogs down.

Flags: needinfo?(jfkthame)

Based on the topcrash criteria, the crash signature linked to this bug is not a topcrash signature anymore.

For more information, please visit BugBot documentation.

Keywords: topcrash
You need to log in before you can comment on or make changes to this bug.