Closed Bug 193276 Opened 22 years ago Closed 16 years ago

[Gtk2] Crash when viewing text files with a ^L character - form feed not treated as a whitespace character in html [@ XftCharIndex]

Categories

(Core :: Layout: Block and Inline, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: andersk, Unassigned)

References

()

Details

(Keywords: crash)

Crash Data

User-Agent: Mozilla/5.0 (compatible; Konqueror/3; Linux) Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 Mozilla seems to crash whenever I try to view a text file that contains a ^L (form feed) character. It just dies silently; no messages are printed if I start it form a console. If I rename the file from .txt to .html, it doesn't crash immediately, but it does crash if I try to view the source of the page. Reproducible: Always Steps to Reproduce: 1. Visit http://www.rfc-editor.org/rfc/rfc2606.txt . Actual Results: Crash. Expected Results: No crash. (What do you think I expected? ... :-)) I'm using the Mozilla 1.3b RH8 RPMS with GTK2 support, running on Red Hat 8.0.
Summary: Crash when viewing text files with a ^L character → Crash when viewing text files with a ^L character (form feed)
WFM, (default) current trunk CVS, Linux.
Summary: Crash when viewing text files with a ^L character (form feed) → [Gtk2] Crash when viewing text files with a ^L character (form feed)
worksforme with linux trunk 20030213 (gtk1) and CVS (gtk2/xft)
Keywords: crash
Worksforme, too. Do you have a stack trace? Does it cause an X error that's just eated by the mozilla startup script? Assmuming this is real, I'll bet it's Xft-related, not gtk2 related. Text like that also tends to trigger bug 173204.
Blocks: xft_tracking
Here's a stack trace (from GDB): #0 0x41066dfa in XftCharIndex () from /usr/lib/libXft.so.2 #1 0x4106386f in XftTextExtents16 () from /usr/lib/libXft.so.2 #2 0x417910bc in nsFontXft::GetWidth16 () from /usr/lib/mozilla-1.3b/components/libgfx_gtk.so #3 0x4178e5fa in nsFontMetricsXft::GetTextDimensions () from /usr/lib/mozilla-1.3b/components/libgfx_gtk.so #4 0x4177a4e5 in nsRenderingContextGTK::GetTextDimensions () from /usr/lib/mozilla-1.3b/components/libgfx_gtk.so #5 0x406acc5c in nsTextFrame::MeasureText () from /usr/lib/mozilla-1.3b/components/libgklayout.so #6 0x406adc11 in nsTextFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #7 0x4067c6ab in nsLineLayout::ReflowFrame () from /usr/lib/mozilla-1.3b/components/libgklayout.so #8 0x4064aae0 in nsBlockFrame::ReflowInlineFrame () from /usr/lib/mozilla-1.3b/components/libgklayout.so #9 0x4064a8aa in nsBlockFrame::DoReflowInlineFrames () from /usr/lib/mozilla-1.3b/components/libgklayout.so #10 0x4064a67b in nsBlockFrame::DoReflowInlineFramesAuto () from /usr/lib/mozilla-1.3b/components/libgklayout.so #11 0x4064a529 in nsBlockFrame::ReflowInlineFrames () from /usr/lib/mozilla-1.3b/components/libgklayout.so #12 0x40648f89 in nsBlockFrame::ReflowLine () from /usr/lib/mozilla-1.3b/components/libgklayout.so #13 0x406486e2 in nsBlockFrame::ReflowDirtyLines () from /usr/lib/mozilla-1.3b/components/libgklayout.so #14 0x40647074 in nsBlockFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #15 0x4064ef7c in nsBlockReflowContext::ReflowBlock () from /usr/lib/mozilla-1.3b/components/libgklayout.so #16 0x40649ecd in nsBlockFrame::ReflowBlockFrame () from /usr/lib/mozilla-1.3b/components/libgklayout.so #17 0x40648be3 in nsBlockFrame::ReflowLine () from /usr/lib/mozilla-1.3b/components/libgklayout.so #18 0x406486e2 in nsBlockFrame::ReflowDirtyLines () from /usr/lib/mozilla-1.3b/components/libgklayout.so #19 0x40647074 in nsBlockFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #20 0x4064ef7c in nsBlockReflowContext::ReflowBlock () from /usr/lib/mozilla-1.3b/components/libgklayout.so #21 0x40649ecd in nsBlockFrame::ReflowBlockFrame () from /usr/lib/mozilla-1.3b/components/libgklayout.so #22 0x40648be3 in nsBlockFrame::ReflowLine () from /usr/lib/mozilla-1.3b/components/libgklayout.so #23 0x406486e2 in nsBlockFrame::ReflowDirtyLines () from /usr/lib/mozilla-1.3b/components/libgklayout.so #24 0x40647074 in nsBlockFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #25 0x406558c8 in nsContainerFrame::ReflowChild () from /usr/lib/mozilla-1.3b/components/libgklayout.so #26 0x40669531 in CanvasFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #27 0x4073bca3 in nsBoxToBlockAdaptor::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #28 0x4073b731 in nsBoxToBlockAdaptor::DoLayout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #29 0x407387f1 in nsBox::Layout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #30 0x4072e2f3 in nsScrollBoxFrame::DoLayout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #31 0x407387f1 in nsBox::Layout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #32 0x4073daa8 in nsContainerBox::LayoutChildAt () from /usr/lib/mozilla-1.3b/components/libgklayout.so #33 0x406656fc in nsGfxScrollFrameInner::LayoutBox () from /usr/lib/mozilla-1.3b/components/libgklayout.so #34 0x406659dd in nsGfxScrollFrameInner::Layout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #35 0x40665743 in nsGfxScrollFrame::DoLayout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #36 0x407387f1 in nsBox::Layout () from /usr/lib/mozilla-1.3b/components/libgklayout.so #37 0x4074aecf in nsBoxFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #38 0x40664c97 in nsGfxScrollFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #39 0x406558c8 in nsContainerFrame::ReflowChild () from /usr/lib/mozilla-1.3b/components/libgklayout.so #40 0x406b2010 in ViewportFrame::Reflow () from /usr/lib/mozilla-1.3b/components/libgklayout.so #41 0x4068ec3d in IncrementalReflow::Dispatch () from /usr/lib/mozilla-1.3b/components/libgklayout.so #42 0x4069b7de in PresShell::ProcessReflowCommands () from /usr/lib/mozilla-1.3b/components/libgklayout.so #43 0x4069b323 in HandlePLEvent () from /usr/lib/mozilla-1.3b/components/libgklayout.so #44 0x40226dd3 in PL_HandleEvent () from /usr/lib/mozilla-1.3b/libxpcom.so #45 0x40226ce1 in PL_ProcessPendingEvents () from /usr/lib/mozilla-1.3b/libxpcom.so #46 0x40227dbb in nsEventQueueImpl::ProcessPendingEvents () from /usr/lib/mozilla-1.3b/libxpcom.so #47 0x40b547be in event_processor_callback () from /usr/lib/mozilla-1.3b/components/libwidget_gtk2.so #48 0x4101e42f in g_io_unix_dispatch () from /usr/lib/libglib-2.0.so.0 #49 0x40ffcf65 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0 #50 0x40ffdf98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #51 0x40ffe2ad in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #52 0x40ffea1f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #53 0x40d3739f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #54 0x40b54a8e in nsAppShell::Run () from /usr/lib/mozilla-1.3b/components/libwidget_gtk2.so #55 0x40b322a6 in nsAppShellService::Run () from /usr/lib/mozilla-1.3b/components/libnsappshell.so #56 0x0804e6b7 in main1 () #57 0x0804ede3 in main () #58 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
Can you put the following in your environment and run the test? NSPR_LOG_MODULES=XftFontLoad:5 that will show the fonts that are loaded when rendering that page.
[0x8818678] setting up pattern with the following specification: lang group: x-western adding generic family: monospace point,pixel size: 9,180 slant: roman weight: (orig,calc) 400,100 matched the following (18) fonts: Luxi Mono Nimbus Mono L Nimbus Mono L ZYSong18030 Andale Mono Courier New Courier New Arial Arial Unicode MS Book Antiqua Lucida Sans Unicode Lucida Console Tahoma Courier LucidaTypewriter Gothic AR PL Mingti2L Big5 Standard Symbols L
Hmm, nothing really unusual there.
Start by reducing your font list in /etc/fonts/fonts.conf (or local.conf) to all non-MS fonts till it works. I had a dodgy font that crashed the xft renderer reproduceably. I've noticed that my MS Arial fonts crash the xft renderer. Reporter can you change your Serif/Sans/Monospace to the Bitstream Vera fonts and try again.
The font it was using was Luxi Mono, so I don't think MS fonts are the problem. However, since I upgraded to Red Hat 9 a while ago, I can't reproduce the crash anymore (either with Red Hat's Mozilla or Mozilla 1.4a GTK2). Instead I see a character that has 000C in a box wherever there are form feed characters in a text or HTML file. I find it strange that Mozilla doesn't treat form feed as a whitespace character in HTML documents. I think this is a bug, according to the HTML spec: http://www.w3.org/TR/html4/struct/text.html#whitespace
Kicking over to layout.
Assignee: asa → block-and-inline
Component: Browser-General → Layout: Block & Inline
QA Contact: asa → ian
*** Bug 223224 has been marked as a duplicate of this bug. ***
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: [Gtk2] Crash when viewing text files with a ^L character (form feed) → [Gtk2] Crash when viewing text files with a ^L character (form feed) [@ XftCharIndex]
does anyone here believe this problem still exists? reporter address is dead.
Summary: [Gtk2] Crash when viewing text files with a ^L character (form feed) [@ XftCharIndex] → [Gtk2] Crash when viewing text files with a ^L character - form feed not treated as a whitespace character in html [@ XftCharIndex]
Oh, sorry. I’m on a totally different system now, but in Firefox 2, I still see a visible boxed “000C” character for form feeds. In Firefox 3, I don’t see anything, so the problem may be fixed.
=> WFM then. Thanks
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
Crash Signature: [@ XftCharIndex]
You need to log in before you can comment on or make changes to this bug.