Closed
Bug 102900
Opened 24 years ago
Closed 24 years ago
Trunk M095 crash when i visit community.walla.co.il [@ nsFontMetricsWin::RealizeFont]
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla0.6
People
(Reporter: barakedry, Assigned: rbs)
References
()
Details
(Keywords: crash, topcrash)
Crash Data
Attachments
(4 files)
|
114.13 KB,
text/plain
|
Details | |
|
4.84 KB,
text/plain
|
Details | |
|
10.46 KB,
text/plain
|
Details | |
|
805 bytes,
patch
|
attinasi
:
superreview+
|
Details | Diff | Splinter Review |
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.4+) Gecko/20011003
BuildID: 2001100303
Reproducible: Always
Steps to Reproduce:
1.just enter the site
Actual Results: mozilla crash
Comment 1•24 years ago
|
||
wfm Win Me Build 2001100203
Although the layout is messed up. The site is using flash. Do you have the
plugin installed?
Comment 2•24 years ago
|
||
wfm with win2k build 20011003..
Reporter: Can you use a talkback enabled build and poste a talkback ID ?
Comment 3•24 years ago
|
||
Reporter: To elaborate on Matti's comment, you can get a talkback-enabled build
here: http://ftp.mozilla.org/pub/mozilla/nightly/latest/mozilla-win32-talkback.zip
(as always, be sure to delete your old Mozilla directory before installing the
new one)
Then, if you get a crash, please post the Talkback ID here.
Whiteboard: stackwanted
Win98, build 2001100103
Talkbacks:
TB36234426Z
TB36234384E
Seems to crash only when Javascript is enabled.
yes i have flash plugin installed and the page layout seems to me ok.
i downloaded talkback build but i cant find what "Talkback ID" is.
Severity: critical → normal
Comment 8•24 years ago
|
||
WFM Linux 2001100308
Comment 9•24 years ago
|
||
Stack Trace
nsFontMetricsWin::RealizeFont
[d:\builds\seamonkey\mozilla\gfx\src\windows\nsFontMetricsWin.cpp, line 3054]
nsFontMetricsWin::Init
[d:\builds\seamonkey\mozilla\gfx\src\windows\nsFontMetricsWin.cpp, line 444]
nsFontCache::GetMetricsFor
[d:\builds\seamonkey\mozilla\gfx\src\nsDeviceContext.cpp, line 570]
DeviceContextImpl::GetMetricsFor
[d:\builds\seamonkey\mozilla\gfx\src\nsDeviceContext.cpp, line 234]
ComputeLineHeight
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowState.cpp, line 2157]
nsHTMLReflowState::CalcLineHeight
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowState.cpp, line 2199]
nsBlockReflowState::nsBlockReflowState
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockReflowState.cpp, line 174]
nsBlockFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 711]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 738]
CanvasFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.cpp, line 584]
nsBoxToBlockAdaptor::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxToBlockAdaptor.cpp, line 885]
nsBoxToBlockAdaptor::DoLayout
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxToBlockAdaptor.cpp, line 541]
nsBox::Layout [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, line 1004]
nsScrollBoxFrame::DoLayout
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsScrollBoxFrame.cpp, line 393]
nsBox::Layout [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, line 1004]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 920]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 738]
ViewportFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 575]
PresShell::InitialReflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 2674]
HTMLContentSink::StartLayout
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLContentSink.cpp,
line 3898]
HTMLContentSink::DidBuildModel
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLContentSink.cpp,
line 2741]
CNavDTD::DidBuildModel [d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp,
line 669]
nsParser::DidBuildModel
[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 1424]
nsParser::Terminate [d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp,
line 1494]
nsHTMLDocument::StopDocumentLoad
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLDocument.cpp, line 879]
DocumentViewerImpl::Stop
[d:\builds\seamonkey\mozilla\content\base\src\nsDocumentViewer.cpp, line 1240]
nsDocShell::Stop [d:\builds\seamonkey\mozilla\docshell\base\nsDocShell.cpp, line
2296]
nsDocShell::Destroy [d:\builds\seamonkey\mozilla\docshell\base\nsDocShell.cpp,
line 2441]
nsWebShell::Destroy [d:\builds\seamonkey\mozilla\docshell\base\nsWebShell.cpp,
line 1412]
nsHTMLFrameInnerFrame::~nsHTMLFrameInnerFrame
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsFrameFrame.cpp, line 696]
nsHTMLFrameInnerFrame::`scalar deleting destructor'
nsFrame::Destroy [d:\builds\seamonkey\mozilla\layout\html\base\src\nsFrame.cpp,
line 473]
nsFrameList::DestroyFrames
[d:\builds\seamonkey\mozilla\layout\base\src\nsFrameList.cpp, line 131]
nsContainerFrame::Destroy
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 136]
nsFrameList::DestroyFrames
[d:\builds\seamonkey\mozilla\layout\base\src\nsFrameList.cpp, line 131]
nsContainerFrame::Destroy
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 136]
nsLineBox::DeleteLineList
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsLineBox.cpp, line 267]
nsBlockFrame::Destroy
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 328]
nsLineBox::DeleteLineList
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsLineBox.cpp, line 267]
nsBlockFrame::Destroy
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 328]
nsLineBox::DeleteLineList
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsLineBox.cpp, line 267]
nsBlockFrame::Destroy
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 328]
nsFrameList::DestroyFrame
[d:\builds\seamonkey\mozilla\layout\base\src\nsFrameList.cpp, line 217]
CanvasFrame::RemoveFrame
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.cpp, line 371]
FrameManager::RemoveFrame
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsFrameManager.cpp, line 859]
nsCSSFrameConstructor::ReconstructDocElementHierarchy
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSFrameConstructor.cpp,
line 7145]
StyleSetImpl::ReconstructDocElementHierarchy
[d:\builds\seamonkey\mozilla\content\base\src\nsStyleSet.cpp, line 1186]
PresShell::ReconstructFrames
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5113]
PresShell::StyleSheetAdded
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5123]
nsDocument::InsertStyleSheetAt
[d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 1386]
CSSLoaderImpl::InsertSheetInDoc
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 1113]
CSSLoaderImpl::SheetComplete
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 823]
CSSLoaderImpl::ParseSheet
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 878]
CSSLoaderImpl::LoadInlineStyle
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 1302]
HTMLContentSink::ProcessSTYLETag
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLContentSink.cpp,
line 5207]
HTMLContentSink::AddLeaf
[d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLContentSink.cpp,
line 3460]
CNavDTD::AddLeaf [d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 3774]
CNavDTD::AddHeadLeaf [d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp,
line 3833]
CNavDTD::HandleStartToken
[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 1719]
CNavDTD::HandleToken [d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp,
line 895]
CNavDTD::BuildModel [d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp,
line 526]
nsParser::BuildModel [d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp,
line 2027]
nsParser::ResumeParse [d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp,
line 1891]
nsParser::Parse [d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line
1755]
Assignee: asa → attinasi
Status: UNCONFIRMED → NEW
Component: Browser-General → Layout
Ever confirmed: true
QA Contact: doronr → petersen
Whiteboard: stackwanted
Comment 10•24 years ago
|
||
WFM on Win2K with 10-03 build.
This could be related to rbs' font changes - cc'ing him.
| Assignee | ||
Comment 11•24 years ago
|
||
WFM too.
Reporter - are you browsing with a particular language group (or some other
Fonts prefs that you modified after installation).
| Reporter | ||
Comment 12•24 years ago
|
||
Yes im using Arial font on Serif and Sans serif, Aharoni on cursive and Fantasy
and Courier New on Monospace for Hebrew (Visual).
This is a topcrash on the trunk.
Keywords: topcrash
Summary: crash when i visit community.walla.co.il → crash when i visit community.walla.co.il [@ nsFontMetricsWin::RealizeFont]
| Assignee | ||
Comment 14•24 years ago
|
||
Taking the bug. Hope to investigate next week.
Those of us who are reporting WFM are doing so on Win2K. Could people with
access to Win9x give another try to the testcase?
From the stack trace, the crash is happening on a null pointer deference in
nsFontMetricsWin::RealizeFont :
nsFontWin* font = FindFont(dc1, 'a');
mFontHandle = font->mFont;
This is very weird because |font| is not expected to be null. A null |font|
there means that there is no font at all to represent the simple letter 'a',
which is weird because the program wouldn't even work in the first place.
barak, on Win2K, I still couldn't crash after setting my prefs as per your
comments of "2001-10-05 10:48". Do you keep crashing when you revert to the
default prefs (with the Western language group). [If I still can't reproduce,
I might provide a special build to you that will log what is happening
in FindFont('a') for further analysis].
Assignee: attinasi → rbs
| Reporter | ||
Comment 15•24 years ago
|
||
still crashs even with Western language group.
i dont really remember what was the original font prefs for Hebrew visual,
anyway with other fonts it still crash.
i also noticed the site changing the Character coding to Unicode but again if i
switch to western before it crash it will reload the page in western coding and
crashs anyway.
| Assignee | ||
Comment 16•24 years ago
|
||
Some data:
The site is sniffing and sending different things depending on the browser.
Feeding the URL to the web-sniffer (http://webtools.mozilla.org/web-sniffer/):
http://webtools.mozilla.org/web-sniffer/view.cgi?url=http%3A%2F%2Fcommunity.walla.co.il%2F&verbose=on
On my system, it returns the following with Mozilla or IE:
Content-type: text/html; charset=windows-1255
And it returns the following with Nav4.x (note: iso-8859-8 is Visual Hebrew):
Content-type: text/html; charset=iso-8859-8
So, I configured myself as Nav4.x by setting the following pref in my
profile's prefs.js:
user_pref("general.useragent.override", "Mozilla/4.77 [en] (Windows 98; U)");
Still no crash.
barak: what happens you save the page locally and view it from your disk.
| Assignee | ||
Comment 17•24 years ago
|
||
s/what happens you/what happens when you/
| Reporter | ||
Comment 18•24 years ago
|
||
The site doesnt crash netscape 6.1 so i used it to download the page.
i downloaded the page without any other files (images, css, another page insaid
iframe...)
if i open the page when im online everything is the same (still crashing), but
it doesnt show any hebrew chracters (if it doesnt crash before im able to see
part of the page)
when im off line it takes something like 10 sec to bring up the page but never
stop loading it, again without any hebrew characters, (might related to the fact
it doesnt have the css file).
i wasn't able to bring it down when its offline (even after switching several
characer coding).
Now this is really strange, i discovered that if i try using "User Defined"
coding on any page its hangs mozila for 5 sec and than not only crashing mozilla
its bringing down my whole system (i wasnt even able to send data with talkback
build)
my user defined font prefs are
serif = Arial
sans serif = Arial
cursive = Arial
Fantasy = Arial
monospace = Courier New
| Assignee | ||
Comment 19•24 years ago
|
||
Do well to open another bug about the weirdness of "User Defined".
Do you still crash if you comment out the block
<!-- <ilayer> ... </ilayer> --> (i.e., including the <iframe> that it contains?
Status: NEW → ASSIGNED
Comment 20•24 years ago
|
||
fwiw, i sent in lots of stacks for this (w98). i triggered it by running out of
resources (notepad insisted i had no fonts and suggested i install some using
the control panel). among them was Incident ID 36312913.
| Assignee | ||
Comment 21•24 years ago
|
||
dbaron, are these stack trace made available somewhere (e.g., on mozilla.org)
for me to look at?
timeless, since you are Win98 -- care to also save the URL and then disable the
<iframe> part that loads the flash plugin as I indicated above. (I am highly
suspicious that it isn't just a confined font problem and I am trying to proceed
by elimination.)
| Assignee | ||
Comment 23•24 years ago
|
||
Another plausible cause could be a missing release so that leaks are swamping
the GDI.
| Reporter | ||
Comment 24•24 years ago
|
||
Doesnt crash with <iframe> part disabled.
also reported new 103673 bug for the "user-defined weirdness".
| Assignee | ||
Comment 25•24 years ago
|
||
And the page renders correctly? No missing Hebrew characters?
| Assignee | ||
Comment 26•24 years ago
|
||
Also, what happens when you create another page in which you only keep the
<iframe>...</iframe> part?
| Reporter | ||
Comment 27•24 years ago
|
||
The page doesnt renders correctly, i have to switch the coding to Hebrew
(Windows-1255) to see hebrew characters.
i wasnt able to bring it down with a page contains only the Iframe part (with
the head of the page)
I also noticed it doesnt crash the latest bulids every time i view the page (but
still crashes most of the times).
| Assignee | ||
Comment 28•24 years ago
|
||
The symptoms of this bug are very similar to that of bug 102778.
I think an infinite recursion might be happening in the handling of <iframe>.
I noted this fact in the course of investigating bug 102778. I had put a break
point in nsWindow::Create(), c.f. attachment 52084 [details] which is a stack trace of
where the crash is reported in bug 102778. My break point was hit ad infinitum
until a crash occurred, and each time the break point was hit, some
htmlframe-related function was on the visible stack -- unfortunately due to the
infinite recursion, this is not apparent on the final stack trace attached to
that bug. Since fonts are amongst the first resources requested when laying a
document, they tend to be exhausted first and disaster strikes there first.
There was a recent fix in bug 101746 that helped the situation. That may explain
the differences that barak is observing in the latest builds.
I have no idea why the Linux build is not showing the problem. I am not sure if
the particularities of nsWindow::Create() in each platform are of any effect.
Anyway, there seems to be a regression still lurking around from the original
fix for bug 49874.
Re-assigning back to attinasi, cc:ing hyatt who fixed bug 49874 and bug 101746.
Assignee: rbs → attinasi
Status: ASSIGNED → NEW
| Assignee | ||
Comment 29•24 years ago
|
||
barak, I am curious of something else... what happens when you just change
<iframe> to <div> (this is to know if the shockwave plugin is playing any role).
Judging from the disassembly and the registers, this is crashing on line 3054
because |font|, which is the return value of FindFont, is null. The disassembly is:
60358946 8b4024 mov eax,[eax+0x24] <=== CRASH HERE
60358949 8b1de0f03560 mov ebx,[6035f0e0]
6035894f 50 push eax
60358950 89868c000000 mov [esi+0x8c],eax
60358956 ff75ec push dword ptr [ebp-0x14]
60358959 ffd3 call ebx
6035895b 8945e4 mov [ebp-0x1c],eax
6035895e 8b4660 mov eax,[esi+0x60]
60358961 8d55fc lea edx,[ebp-0x4]
and EAX is 0.
Is this related to bug 103777?
| Assignee | ||
Comment 32•24 years ago
|
||
> |font|, which is the return value of FindFont, is null
Yep, that's what I noted earlier -- what is curious there is that in the worst
case scenario, there is the font substitute fallback which is supposed to be
never null -- in theory, that is.
> Is this related to bug 103777?
Let me have a look.
Comment 33•24 years ago
|
||
rbs: um i can try, but my crashes had nothing to do w/ the url here. I
litterally had exhausted all of my font resources somewhere else (requires
9x...) so i could run mozilla, load 4 windows (ctrl-1,..4) and be assured that
mozilla would crash.
currently my 98 box is in the midst of a js memory exhaustion algoritm, i'll try
this page sometime after that either crashes or i need to recover the computer.
| Assignee | ||
Comment 34•24 years ago
|
||
Noted something in the course of this (rjesup, what you think?) :
nsFontCache :: GetMetricsFor
- mFontMetrics.MoveElement(0, cnt);
+ mFontMetrics.MoveElement(cnt, 0);
| Assignee | ||
Comment 35•24 years ago
|
||
barak, here is a special build that will log what is happening in the
font-subystem using the timeline service (from bug 78793). Basically, the
code will, amongst other things, log what is happening with the fonts and the
ellapsed time between each operation:
ftp://ftp.maths.uq.edu.au/pub/rbs/mozilla-win32-bug102900.exe
To test the build:
1. Install the self-extracting file, e.g. in C:\temp\mozilla-bug102900
2. cd c:\temp\mozilla-bug102900\bin
3. set NS_TIMELINE_LOG_FILE=c\temp\timeline.txt
4. mozilla
Then, visit the crash site and let see how it goes...
| Assignee | ||
Comment 36•24 years ago
|
||
| Assignee | ||
Comment 37•24 years ago
|
||
The attached sample shows what I get when I open a blank window (no sidebar),
and enter http://community.walla.co.il/ in the urlbar, and then exit when the
'Document: done' appears. Searching the crash url on the sample enables to go
straight where the load starts and to see what is happening from there. (Note
to developers: I added F_SYNC to the timeline logging service in my tree -- hope
that will help not to miss logging bits if a crash occur.)
Comment 38•24 years ago
|
||
Reassign - well, you are doing all the work here ;)
Assignee: attinasi → rbs
Comment 39•24 years ago
|
||
Opened a bug (bug 104260) to cover the nsFontCache issue.
Comment 40•24 years ago
|
||
Adding Trunk and M095 to the summary for talkback (160 incidents in M095, 141 in
Trunk under the nsFontMetricsWin::RealizeFont signature).
Summary: crash when i visit community.walla.co.il [@ nsFontMetricsWin::RealizeFont] → Trunk M095 crash when i visit community.walla.co.il [@ nsFontMetricsWin::RealizeFont]
| Assignee | ||
Comment 41•24 years ago
|
||
No luck reproducing this so far on the urls provided with the talback data.
The connection with the <iframe> is still to be elucidated too.
Comment 42•24 years ago
|
||
Comment 43•24 years ago
|
||
Comment 44•24 years ago
|
||
This is the #1 crasher for Mozilla 0.9.5 thus far. I have attached all the user
comments and urls submitted by users on both the MozillaTrunk and M095. Adding
qawanted keyword to see if we can get a solid testcase or reproducible steps.
Keywords: qawanted
| Assignee | ||
Comment 45•24 years ago
|
||
| Assignee | ||
Comment 46•24 years ago
|
||
I had hoped to get down to the problem but since I have no luck reproducing,
I am falling back (with some reluctance) to the good old null pointer check.
Note that the proposed check used to be there, but I removed it when fixing
printing bug 102243:
http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&file=nsFontMetricsWin.cpp&root=/cvsroot&subdir=mozilla/gfx/src/windows&command=DIFF_FRAMESET&rev1=3.118&rev2=3.119
It evades me why this check should be there because the basic problem is to find
a font that can represent the simple letter 'a' -- rendering cannot even work
without that font. (It is the ASCII font that is subsequently used to get the
CSS metrics as I commented about in my font changes.) My gut feeling so far is
that the crash is arising because objects/resources are been destroyed while
layout is still in progress, instead of halting all the layout chain first.
Admittedly however, FindFont('a') can also fail in low-memory situations, so...
seeking r/sr to re-instate the null check.
Comment 47•24 years ago
|
||
Comment on attachment 53911 [details] [diff] [review]
null pointer check
sr=attinasi
Attachment #53911 -
Flags: superreview+
| Assignee | ||
Comment 48•24 years ago
|
||
rods, review?
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.6
Comment 49•24 years ago
|
||
look godd r=rods
| Assignee | ||
Comment 50•24 years ago
|
||
Fixed with the null check.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Updated•14 years ago
|
Crash Signature: [@ nsFontMetricsWin::RealizeFont]
You need to log in
before you can comment on or make changes to this bug.
Description
•