gtk2/xft crash on startup [@ nsFontMetricsXft::RealizeFont]

RESOLVED WORKSFORME

Status

SeaMonkey
General
--
critical
RESOLVED WORKSFORME
15 years ago
13 years ago

People

(Reporter: Biesinger, Assigned: blizzard)

Tracking

({crash})

Trunk
x86
Linux
crash

Firefox Tracking Flags

(Not tracked)

Details

(crash signature)

Attachments

(2 attachments)

cvs from friday or so, linux, gtk2 with xft enabled (decided to try it)
crash on startup:
Program debug/dist/bin/mozilla-bin (pid = 26963) received Segmentation Fault signal.
Stack:
UNKNOWN [/lib/libc.so.6 +0x00026B88]
nsFontMetricsXft::RealizeFont(void)+0x00000046
[/home/chb/mozilla/debug/dist/bin/components/libgfx_gtk.so +0x0006A67E]
nsFontMetricsXft::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)+0x0000053A
[/home/chb/mozilla/debug/dist/bin/components/libgfx_gtk.so +0x000699EE]
nsFontCache::GetMetricsFor(nsFont const &, nsIAtom *, nsIFontMetrics
*&)+0x000001E2 [/home/chb/mozilla/debug/dist/bin/libgkgfx.so +0x00020942]
DeviceContextImpl::GetMetricsFor(nsFont const &, nsIFontMetrics *&)+0x000000F8
[/home/chb/mozilla/debug/dist/bin/libgkgfx.so +0x0001FA48]
nsTextBoxFrame::GetTextSize(nsIPresContext *, nsIRenderingContext &, nsString
const &, nsSize &, int &)+0x00000113
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002D01DF]
nsTextBoxFrame::CalcTextSize(nsBoxLayoutState &)+0x000000A6
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002D0396]
nsTextBoxFrame::GetAscent(nsBoxLayoutState &, int &)+0x0000002B
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002D0523]
nsSprocketLayout::GetAscent(nsIBox *, nsBoxLayoutState &, int &)+0x00000086
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002CC1F2]
nsContainerBox::GetAscent(nsBoxLayoutState &, int &)+0x0000009C
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002C8388]
nsBoxFrame::GetAscent(nsBoxLayoutState &, int &)+0x00000079
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002DB6F1]
nsSprocketLayout::GetAscent(nsIBox *, nsBoxLayoutState &, int &)+0x00000086
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002CC1F2]
nsContainerBox::GetAscent(nsBoxLayoutState &, int &)+0x0000009C
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002C8388]
nsBoxFrame::GetAscent(nsBoxLayoutState &, int &)+0x00000079
[/home/chb/mozilla/debug/dist/bin/components/libgklayout.so +0x002DB6F1]
....
possibly more useful stack (with line numbers), from gdb:
#5  0x41a8067e in nsFontMetricsXft::RealizeFont (this=0x8244cd0) at
/home/chb/mozilla/gfx/src/gtk/nsFontMetricsXft.cpp:744
#6  0x41a7f9ee in nsFontMetricsXft::Init (this=0x8244cd0, aFont=@0x8420dec,
aLangGroup=0x81ed2c0, aContext=0x808fc78)
    at /home/chb/mozilla/gfx/src/gtk/nsFontMetricsXft.cpp:267
#7  0x40032942 in nsFontCache::GetMetricsFor (this=0x8244ca0, aFont=@0x8420dec,
aLangGroup=0x81ed2c0, aMetrics=@0xbfffcfe8)
    at /home/chb/mozilla/gfx/src/nsDeviceContext.cpp:669
#8  0x40031a48 in DeviceContextImpl::GetMetricsFor (this=0x808fc78,
aFont=@0x8420dec, aMetrics=@0xbfffcfe8)
    at /home/chb/mozilla/gfx/src/nsDeviceContext.cpp:365
#9  0x426d01df in nsTextBoxFrame::GetTextSize (this=0x8420c84,
aPresContext=0x81cedb8, aRenderingContext=@0x8244b28, 
    aString=@0x8420cc4, aSize=@0xbfffd040, aAscent=@0x8420d08)
    at /home/chb/mozilla/layout/xul/base/src/nsTextBoxFrame.cpp:795
#10 0x426d0396 in nsTextBoxFrame::CalcTextSize (this=0x8420c84,
aBoxLayoutState=@0xbfffd5d8)
    at /home/chb/mozilla/layout/xul/base/src/nsTextBoxFrame.cpp:817
#11 0x426d0523 in nsTextBoxFrame::GetAscent (this=0x8420c84,
aBoxLayoutState=@0xbfffd5d8, aAscent=@0xbfffd0cc)
    at /home/chb/mozilla/layout/xul/base/src/nsTextBoxFrame.cpp:866
...

Comment 2

15 years ago
other gtk2/xft crashers: bug 177905, bug 177665.
Keywords: crash
Summary: gtk2/xft crash on startup → gtk2/xft crash on startup [@ nsFontMetricsXft::RealizeFont]

Updated

15 years ago
Severity: normal → critical
(Assignee)

Updated

15 years ago
Blocks: 92033
this time, a stack that starts with #0:

#0  0x404c0671 in nanosleep () from /lib/libc.so.6
#1  0x4037292d in nanosleep () from /lib/libpthread.so.0
#2  0x404c0600 in sleep () from /lib/libc.so.6
#3  0x08066566 in ah_crap_handler (signum=11) at
/home/chb/mozilla/xpfe/bootstrap/nsSigHandlers.cpp:144
#4  0x421e9a16 in nsProfileLock::FatalSignalHandler (signo=11, info=0xbfffcee0,
context=0xbfffcf60)
    at /home/chb/mozilla/profile/src/nsProfileAccess.cpp:1692
#5  0x403746a1 in __pthread_sighandler_rt () from /lib/libpthread.so.0
#6  0x4044bb80 in sigaction () from /lib/libc.so.6
#7  0x424f987e in nsFontMetricsXft::RealizeFont (this=0x825db78) at
/home/chb/mozilla/gfx/src/gtk/nsFontMetricsXft.cpp:745
#8  0x424f8bee in nsFontMetricsXft::Init (this=0x825db78, aFont=@0x825ff98,
aLangGroup=0x823a110, aContext=0x82105d8)
    at /home/chb/mozilla/gfx/src/gtk/nsFontMetricsXft.cpp:268
#9  0x40032a42 in nsFontCache::GetMetricsFor (this=0x824fa00, aFont=@0x825ff98,
aLangGroup=0x823a110, aMetrics=@0xbfffd540)
    at /home/chb/mozilla/gfx/src/nsDeviceContext.cpp:669

and the line number has changed. line 745 of the fontmetrics file is:
745	    return CacheFontMetrics();

will try to find out more.
ah, this is interesting:
(gdb) print this
$1 = (nsFontMetricsXft *) 0x0
(Assignee)

Comment 5

15 years ago
Calling into an invalid object?  Why not attach the whole stack trace as an
attachment?
Created attachment 105854 [details]
first stacktrace

now this is strange.

depending on how I generate the stacktraces, I get slightly different ones...
Here's the one from "./mozilla -g -d gdb"

I'll attach the second one in a second
Created attachment 105856 [details]
second stacktrace

Here's the one from just running "./mozilla", waiting for the crash (which
causes it to display a stacktrace and to show instructions for attaching to the
process) then attaching to the process with gdb. note that |this| is null only
in this stacktrace.


the first one actually looks more plausible to me.
hm, I now updated Xft and fontconfig and this seems to work now with my old build.

can't create a new one because I only have pango 1.0.5, but ok, that's my
problem I guess.


marking worksforme.
Status: NEW → RESOLVED
Last Resolved: 15 years ago
Resolution: --- → WORKSFORME
Product: Browser → Seamonkey
Crash Signature: [@ nsFontMetricsXft::RealizeFont]
You need to log in before you can comment on or make changes to this bug.