Crash in TrueTypeFontMetricsBuilder::GetBlackBox
Categories
(Core :: Graphics: Text, defect, P4)
Tracking
()
People
(Reporter: mccr8, Assigned: jfkthame)
References
(Blocks 1 open bug)
Details
(Keywords: crash, Whiteboard: [gfx-noted])
Crash Data
Attachments
(1 file, 1 obsolete file)
Reporter | ||
Comment 1•8 years ago
|
||
Assignee | ||
Comment 2•8 years ago
|
||
Updated•8 years ago
|
Comment 3•8 years ago
|
||
Updated•8 years ago
|
Comment 4•7 years ago
|
||
Comment 5•3 years ago
|
||
Five years later and we're still seeing 20–50 reports of this crash per day.
The crash reasons still all look like disk errors reported deep inside dwrite.dll:
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_BAD_COMPRESSION_BUFFER
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_DEVICE_DATA_ERROR
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_IO_DEVICE_ERROR
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_IO_TIMEOUT
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_NO_SUCH_DEVICE
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_UNEXPECTED_NETWORK_ERROR
EXCEPTION_IN_PAGE_ERROR_READ / STATUS_VOLUME_DISMOUNTED
Updated•2 years ago
|
Updated•2 years ago
|
Comment 6•2 years ago
|
||
lsalzman: I think we could probably downgrade to S3, given this doesn't seem to be actionable per comment 4 - 5. (and bug 771138 comment 4: "it's quite likely that if we're encountering them, then most profile I/O going forward is going to be broken too, so trading the crash for everything breaking isn't likely a major improvement. [...] As such I don't think there's much to do about the bug.")
(I'll defer to you on making that change, though.)
Comment 7•2 years ago
|
||
Jonathan, any idea if we can make these fallible somehow rather than just crash-bang-boom?
Assignee | ||
Comment 8•2 years ago
|
||
I looked at a few of the reports, and in all the ones I checked, the failure is happening under gfxDWriteFont::GetGlyphBounds. So I guess we can add MOZ_SEH_TRY / MOZ_SEH_EXCEPT guards around the DirectWrite calls there (as we already have in some other methods) to catch the failure and just mark the font as invalid and hope to fall back to something usable.
There's always the possibility that catching the exception here just means we'll crash later on when some other system call wants to access a resource and hits a similar error, but it seems worth trying.
Assignee | ||
Comment 9•2 years ago
|
||
Updated•2 years ago
|
Comment 10•2 years ago
|
||
Assignee | ||
Comment 11•2 years ago
|
||
(In reply to Daniel Holbert [:dholbert] from comment #6)
Re:
"it's quite likely that if we're encountering them, then most profile I/O going forward is going to be broken too, ...
I suspect this may not be the case... it depends, I think, whether we're running into a general disk access failure that will affect all accesses -- e.g. a drive got disconnected, or something equally drastic -- or a failure that's localized to a particular file, like a bad sector on an old platter. If it's the latter type of issue, then we may be able to skip using this font but carry on without serious breakage.
Updated•2 years ago
|
Comment 12•2 years ago
|
||
Comment 13•2 years ago
|
||
bugherder |
Updated•2 years ago
|
Updated•2 years ago
|
Description
•