Closed Bug 743593 Opened 14 years ago Closed 14 years ago

Crash in _moz_cairo_font_face_destroy

Categories

(Core :: Graphics, defect)

14 Branch
x86_64
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla14

People

(Reporter: epinal99-bugzilla2, Assigned: bas.schouten)

References

Details

(Keywords: crash, regression, reproducible)

Crash Data

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120408 Firefox/14.0a1 Build ID: 20120408031146 Steps to reproduce: 1. Be sure hardware acceleration (HWA) is enabled 2. Open this JS demo http://js1k.com/2012-love/demo/1243 NB: Note the demo slows Firefox a lot when HWA is enabled! (that's another issue, I guess) 3. Disable HWA 4. Quit Firefox Actual results: FF14 crashes after exiting. FF13 doesn't crash but FF12 crashes too, reported here in https://bugzilla.mozilla.org/show_bug.cgi?id=737279#c9 CR: https://crash-stats.mozilla.com/report/index/bp-bc4f0cd7-c674-43ad-a67c-4e5752120408 Frame Module Signature Source 0 xul.dll _moz_cairo_font_face_destroy gfx/cairo/cairo/src/cairo-font-face.c:141 1 xul.dll gfxDWriteFont::`vector deleting destructor' 2 xul.dll gfxFontCache::DestroyFont gfx/thebes/gfxFont.cpp:1274 3 xul.dll gfxFontCache::NotifyExpired gfx/thebes/gfxFont.cpp:1262 4 xul.dll nsExpirationTracker<gfxFont,3>::AgeOneGeneration obj-firefox/dist/include/nsExpirationTracker.h:221 5 xul.dll nsExpirationTracker<gfxTextRun,3>::AgeAllGenerations obj-firefox/dist/include/nsExpirationTracker.h:245 6 xul.dll gfxFontCache::~gfxFontCache gfx/thebes/gfxFont.cpp:1191 7 xul.dll gfxFontCache::`scalar deleting destructor' 8 xul.dll gfxFontCache::Shutdown gfx/thebes/gfxFont.cpp:1146 9 xul.dll gfxPlatform::Shutdown gfx/thebes/gfxPlatform.cpp:350 10 xul.dll nsComponentManagerImpl::KnownModule::~KnownModule xpcom/components/nsComponentManager.h:207 11 xul.dll nsTArray<nsAutoPtr<nsComponentManagerImpl::KnownModule>,nsTArrayDefaultAllocator>::DestructRange obj-firefox/dist/include/nsTArray.h:1243 12 xul.dll nsTArray<nsAutoPtr<nsComponentManagerImpl::KnownModule>,nsTArrayDefaultAllocator>::RemoveElementsAt obj-firefox/dist/include/nsTArray.h:963 13 xul.dll nsComponentManagerImpl::Shutdown xpcom/components/nsComponentManager.cpp:770 14 xul.dll mozilla::ShutdownXPCOM xpcom/build/nsXPComInit.cpp:701 15 xul.dll ScopedXPCOMStartup::~ScopedXPCOMStartup toolkit/xre/nsAppRunner.cpp:1129 16 xul.dll XREMain::XRE_main toolkit/xre/nsAppRunner.cpp:3871 17 xul.dll XRE_main toolkit/xre/nsAppRunner.cpp:3925 18 firefox.exe wmain toolkit/xre/nsWindowsWMain.cpp:107 19 firefox.exe __tmainCRTStartup crtexe.c:552 20 kernel32.dll BaseThreadInitThunk 21 ntdll.dll __RtlUserThreadStart 22 ntdll.dll _RtlUserThreadStart
Crash Signature: [@ _moz_cairo_font_face_destroy ]
Keywords: crash, reproducible
Component: Untriaged → Graphics
Depends on: 737279
Product: Firefox → Core
Regression window(m-c) Not crash: http://hg.mozilla.org/mozilla-central/rev/ac5721fa4acb Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120404 Firefox/14.0a1 ID:20120405024521 Crash: http://hg.mozilla.org/mozilla-central/rev/90a4942abf08 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120405 Firefox/14.0a1 ID:20120405105200 Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=ac5721fa4acb&tochange=90a4942abf08 Regression window(m-i) Not crash: http://hg.mozilla.org/integration/mozilla-inbound/rev/a13c9668e47f Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120404 Firefox/14.0a1 ID:20120404151823 Crash: http://hg.mozilla.org/integration/mozilla-inbound/rev/3b2230d34d3f Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120404 Firefox/14.0a1 ID:20120404152120 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=a13c9668e47f&tochange=3b2230d34d3f Triggered by: 3b2230d34d3f Matt Woodrow — Bug 719776: Kill some external dependencies inside Azure code. r=Bas
Blocks: 719776
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
This is caused by, when hardware acceleration is switched off, mUseDirectWrite becoming false, but existing fonts in the cache still being DWrite fonts. We should properly detect the actual font type, and base our cast on that!
Assignee: nobody → bas.schouten
Status: NEW → ASSIGNED
Attachment #613568 - Flags: review?(jfkthame)
Comment on attachment 613568 [details] [diff] [review] Make sure we use the actual font type Review of attachment 613568 [details] [diff] [review]: ----------------------------------------------------------------- Seems fine, assuming you'll remove the gfx2d.sln chunk. I notice that gfxWindowsPlatform seems to be acquiring a mixture of 2- and 4-space indentation, and even some hard tabs :( ... care to do some whitespace-fixup while you're here? The standard in gfx/ has historically been 4-space indents. ::: gfx/thebes/gfxFont.h @@ +1533,5 @@ > + FONT_TYPE_MAC, > + FONT_TYPE_OS2 > + } FontType; > + > + virtual FontType GetType() = 0; This should to be declared as a const function (here and in all the implementations), I think.
Attachment #613568 - Flags: review?(jfkthame) → review+
Severity: normal → critical
No longer depends on: 737279
QA Contact: untriaged → thebes
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla14
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: