Deadlock on gfxPlatformFontList lock
Categories
(Core :: Graphics: Text, defect)
Tracking
()
People
(Reporter: alwu, Unassigned)
References
Details
Attachments
(1 file)
18.42 KB,
text/plain
|
Details |
Following message happened while I was developing bug 1771011. This was an intermittent error message, so I don't have reproducible steps.
###!!! Deadlock may happen NOW!
: 'Error', file C:/mozilla-source/mozilla-unified/xpcom/threads/BlockingResourceBase.cpp:245
[Child 37708, Main Thread] WARNING: Re-entering RecursiveMutex after acquiring other resources.: file C:/mozilla-source/mozilla-unified/xpcom/threads/BlockingResourceBase.cpp:477
###!!! ERROR: Potential deadlock detected:
=== Cyclical dependency starts at
--- RecursiveMutex : gfxPlatformFontList lock (currently acquired)
calling context
[stack trace unavailable]
--- Next dependency:
--- Mutex : gfxFontFamily lock (currently acquired)
calling context
[stack trace unavailable]
=== Cycle completed at
--- RecursiveMutex : gfxPlatformFontList lock (currently acquired)
calling context
[stack trace unavailable]
Comment 1•2 years ago
|
||
Thanks for filing this, we'll need to try and figure out what's happening. (Those [stack trace unavailable]
messages are frustrating, though!)
(The most recent change I can think of that might be relevant would be the gfxCharacterMap change in bug 1778711, but I'm not certain yet whether that's what we are encountering here.)
Updated•2 years ago
|
Updated•2 years ago
|
Comment 2•2 years ago
|
||
Maybe a call stack similar to:
gfxFontFamily::FindFontForChar -- https://searchfox.org/mozilla-central/rev/9ad01b5eae48436e3bdb8df01be3973e683d5242/gfx/thebes/gfxFontEntry.cpp#1805
gfxFontFamily::TestCharacterMap -- https://searchfox.org/mozilla-central/rev/9ad01b5eae48436e3bdb8df01be3973e683d5242/gfx/thebes/gfxFontEntry.h#974
gfxFontFamily::ReadAllCMAPs -- https://searchfox.org/mozilla-central/rev/9ad01b5eae48436e3bdb8df01be3973e683d5242/gfx/thebes/gfxFontEntry.cpp#2211
gfxDWriteFontEntry::ReadCMAP -- https://searchfox.org/mozilla-central/rev/9ad01b5eae48436e3bdb8df01be3973e683d5242/gfx/thebes/gfxDWriteFontList.cpp#558
Comment 3•2 years ago
|
||
Any new cases would be whenever a strong reference to gfxCharacterMap is cleared.
Comment 4•2 years ago
|
||
Alastor, could you check whether gfx.e10s.font-list.shared
is enabled in the profile you're using? (It's true by default, but if you've toggled it that would affect what code paths are possible here.) Thanks!
Comment 5•2 years ago
|
||
Triage - I am setting severity to S3, given the first comment says it was encountered while developing new code and only infrequently, I am assuming this is not critically urgent.
Reporter | ||
Comment 6•2 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #4)
Alastor, could you check whether
gfx.e10s.font-list.shared
is enabled in the profile you're using? (It's true by default, but if you've toggled it that would affect what code paths are possible here.) Thanks!
Yes, I didn't change it so that pref is enabled on my profile.
Comment 7•1 year ago
|
||
I ~100% repro on my macOS VM. STRs are basically: build a debug ; mach run
Comment 8•1 year ago
|
||
Johnathan, it seems I can repro that very easily, this is the default profile after a mach build && mach run
, so the pref you mentionned in comment 4 should be at its default value. What kind of debugging can I perform to help fix this ?
Comment 9•1 year ago
|
||
Comment 10•2 months ago
|
||
I can also repro using :gerard-majax's STR in comment 7 on my M1 Mac.
Comment 11•9 days ago
|
||
I think the patch just landing in bug 1824214 may resolve this.
Description
•