Closed Bug 18312 Opened 25 years ago Closed 24 years ago

[BLOCK] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to infinite loop

Categories

(MailNews Core :: Composition, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED WORKSFORME

People

(Reporter: momoi, Assigned: mscott)

References

()

Details

Attachments

(1 file)

** Obseved with 11/8/99 Win32 build (19991108009) **

This bug sounds familiar but just in case there is no outstanding bug
describing this problem, I'll file it.

1. The above Smoketesy.zip file contains 5 msgs.
2. The 3rd msg from top is a JPN message body with an HTML attachment (Netscape
   Home Page which was sent by 4.6 using "Send Page" option).
3. Now display/select this msg on IMAP or POP server. (Note: Observe that
   it displays correctly in body and attachment if you had selected
   Browser's "View | Auto-Detect | Japanese" beforehand. The problem, however,
   occurs whether or not the attachment display is correct.)
4. Now engage Reply / w auto-quoting under HTML mail send option.
5. In the process of assembling this message, Mozilla crashes.
So far I tried the following Netscape Home Pages and
CJK pages cause this crash but Latin 1 page (French Home
Page) does not.

1. http://home.netscape.com/ja    (Japan)
2. http://home.netscape.com/zh/cn  (China)
3. http://home.netscape.com/zh.tw  (Taiwan)
4. http://home.netscape.com/fr  (French Home Page)
QA Contact: lchiang → momoi
Summary: Reply/Quoting an HTML attachment leads to a crash under HTML send option → [Dogfood] Reply/Quoting an HTML attachment leads to a crash under HTML send option
This is one of the basic functionality and so I'm designating it
[Dogfood].
Here's what I get on Talkback for one of my crashes:

Trigger Type:  Program Crash
Trigger Reason:  Access violation
Call Stack:    (Signature = 0x00000000 c64f5270) 0x00000000

nsHTMLDivElement::Release
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLDivElement.cpp, line
110]
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp,
line 2401]
nsBodyInner::~nsBodyInner
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLBodyElement.cpp,
line 146] nsHTMLBodyElement::`scalar deleting destructor'
nsHTMLTableColGroupElement::Release
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLTableColGroupElement
.cpp, line 119]
nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp,
line 2401]
nsHTMLHtmlElement::`scalar deleting destructor'
nsHTMLDivElement::Release
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLDivElement.cpp, line
110]
nsDocument::~nsDocument
[d:\builds\seamonkey\mozilla\layout\base\src\nsDocument.cpp, line 633]
nsHTMLDocument::~nsHTMLDocument
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLDocument.cpp, line
264]
nsDocument::Release
[d:\builds\seamonkey\mozilla\layout\base\src\nsDocument.cpp, line 757]
nsHTMLDocument::Release
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLDocument.cpp, line
300]
nsCOMPtr_base::~nsCOMPtr_base
[d:\builds\seamonkey\mozilla\xpcom\base\nsCOMPtr.cpp, line 45]
DocumentViewerImpl::~DocumentViewerImpl
[d:\builds\seamonkey\mozilla\layout\base\src\nsDocumentViewer.cpp, line 287]

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

See below for the full report:

http://cyclone/reports/incidenttemplate.CFM?reportID=1020&style=0&tc=2&cp=1&ck1
=SNub+trigger+event+time&cd1=1999%2F11%2F09&bbid=534149
The above crash report was generated when I took
the 3rd msg in the Smoketest file and engaged reply/w auto-quote
button on it under HTML mail send option.
Assignee: ducarroz → rhp
I did the following test with a windows build from this morning (should be the
same than the official build of the day) on NT 4.0 sp5 english:

1) With 4.7, load http://home.netscape.com/ja
2) Send page

3) With 5.0, Get message,
4) Select the message sent from 4.7
5) >>>CRASH>>> in nsTableCellFrame* nsCellMap::GetCellInfoAt at line 515.

Reassign to rhp for investigation...
FYI: Today's build on Unix (at least) crash when displaying cnn.com in the browser at the same location I have
reported.
I haven't been able to get this to happen today with my build...win continue
the investigation.

- rhp
Status: NEW → ASSIGNED
Target Milestone: M12
I will update my tree and retest, but I really don't think this is a quoting
problem. The stack trace is crashing in Layout in table code. Is everyone still
seeing this crash?

- rhp
I'm still seeing it on the 2nd Win 32 build of the day. (Build: 1999110911)
I'm seeing this on today's linux 1999110911 build too.
Whiteboard: [PDT+]
Putting on PDT+ radar.
Summary: [Dogfood] Reply/Quoting an HTML attachment leads to a crash under HTML send option → [DOGFOOD] Reply/Quoting an HTML attachment leads to a crash under HTML send option
Ok, I know what this specific bug is...its our old friend the META tag with a
charset specified. Basically, quoting HTML with this line will cause that
document reload and cause us to crash. I can prevent the data we generate from
having META tags (I've done that already) but there is no way to prevent
attachments from doing this.

Akkana: Is there a bug on this already...if so, its a dup, if not, then this is
a new one for Ender.

The stack trace looks like this:

nsDocLoaderImpl::GetContentViewerContainer(nsDocLoaderImpl * const 0x016dfa90,
unsigned int 1242164, nsIContentViewerContainer * * 0x0012e670) line 658 + 5
bytes
nsObserverBase::NotifyWebShell(nsObserverBase * const 0x016d8108, unsigned int
1242164, const char * 0x03c38f00, nsCharsetSource kCharsetFromMetaTag, const
char * 0x03c38e90) line 54 + 20 bytes
nsMetaCharsetObserver::Notify(nsMetaCharsetObserver * const 0x016d8100,
unsigned int 1242164, unsigned int 5, const unsigned short * * 0x0012ed34,
const unsigned short * * 0x0012edfc) line 287 + 36 bytes
nsMetaCharsetObserver::Notify(nsMetaCharsetObserver * const 0x016d8100,
unsigned int 1242164, const unsigned short * 0x0012ecb4, unsigned int 5, const
unsigned short * * 0x0012ed34, const unsigned short * * 0x0012edfc) line 166
nsObserverNotifier::operator()(void * 0x016d8100) line 321 + 47 bytes
nsDeque::FirstThat(nsDequeFunctor & {...}) line 348 + 14 bytes
CObserverService::Notify(nsHTMLTag eHTMLTag_meta, nsIParserNode & {...},
unsigned int 1242164, const char * 0x02194094, nsIParser * 0x03c17b60) line 938
CNavDTD::WillHandleStartTag(CToken * 0x02298630, nsHTMLTag eHTMLTag_meta,
nsCParserNode & {...}) line 1065 + 35 bytes
CNavDTD::HandleStartToken(CToken * 0x02298630) line 1258 + 20 bytes
CNavDTD::HandleToken(CNavDTD * const 0x03c26ba0, CToken * 0x02298630, nsIParser
* 0x03c17b60) line 732 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x03c26ba0, nsIParser * 0x03c17b60,
nsITokenizer * 0x03c34d40, nsITokenObserver * 0x00000000, nsIContentSink *
0x03c218f0) line 529 + 20 bytes
nsParser::BuildModel() line 1030 + 34 bytes
nsParser::ResumeParse(nsIDTD * 0x00000000, int 0) line 956 + 11 bytes
nsParser::Parse(const nsString & {""}, void * 0x0012f434, const nsString &
{"text/html"}, int 0, int 1, eParseMode eParseMode_autodetect) line 837 + 15
bytes
nsParser::ParseFragment(const nsString & {"<!doctype html public "-//w3c//dtd
html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}, void * 0x00000000,
nsITagStack & {...}, unsigned int 0, const nsString & {"text/html"}, eParseMode
eParseMode_autodetect) line 926 + 41 bytes
nsRange::CreateContextualFragment(nsRange * const 0x03c17884, const nsString &
{"<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}, nsIDOMDocumentFragment * *
0x0012f7f4) line 1845 + 52 bytes
nsHTMLEditor::InsertHTML(nsHTMLEditor * const 0x035fc5a4, const nsString &
{"<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}) line 1358 + 63 bytes
nsHTMLEditor::InsertAsCitedQuotation(nsHTMLEditor * const 0x035fc5a8, const
nsString & {"<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}, const nsString & {""}) line
3653 + 20 bytes
nsHTMLEditorLog::InsertAsCitedQuotation(nsHTMLEditorLog * const 0x035fc5a8,
const nsString & {"<!doctype html public "-//w3c//dtd html 4.0
transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}, const nsString & {""}) line
457 + 17 bytes
nsHTMLEditor::InsertAsQuotation(nsHTMLEditor * const 0x035fc5a8, const nsString
& {"<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}) line 3575 + 23 bytes
nsHTMLEditorLog::InsertAsQuotation(nsHTMLEditorLog * const 0x035fc5a8, const
nsString & {"<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}) line 421 + 13 bytes
nsEditorShell::InsertAsQuotation(nsEditorShell * const 0x03c26f30, const
unsigned short * 0x036d2d80) line 2135 + 42 bytes
nsMsgCompose::ConvertAndLoadComposeWindow(nsIEditorShell * 0x03c26f30, nsString
{"<br><br>Katsuhiko Momoi wrote:<br><html>"}, nsString {"<!doctype html public
"-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br><A HREF="http://people.netscape.com/momoi/"}, nsString ...) line 140
QuotingOutputStreamListener::OnStopRequest(QuotingOutputStreamListener * const
0x03c34bb0, nsIChannel * 0x03b14090, nsIChannel * 0x03b14090, unsigned int 0,
nsIChannel * 0x03b14090) line 970
nsStreamConverter::OnStopRequest(nsStreamConverter * const 0x03b11d70,
nsIChannel * 0x03b10264, nsISupports * 0x03be46f0, unsigned int 0, const
unsigned short * 0x00000000) line 730
nsMsgProtocol::OnStopRequest(nsMsgProtocol * const 0x03b10260, nsIChannel *
0x03b22a50, nsISupports * 0x03be46f0, unsigned int 0, const unsigned short *
0x00000000) line 199 + 74 bytes
nsMailboxProtocol::OnStopRequest(nsMailboxProtocol * const 0x03b10260,
nsIChannel * 0x03b22a50, nsISupports * 0x03be46f0, unsigned int 0, const
unsigned short * 0x00000000) line 177
nsFileChannel::OnStopRequest(nsFileChannel * const 0x03b22a54, nsIChannel *
0x03b248b0, nsISupports * 0x03be46f0, unsigned int 0, const unsigned short *
0x00000000) line 427 + 45 bytes
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x03b2c850) line
326
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x03b29e70) line 173 + 12 bytes
PL_HandleEvent(PLEvent * 0x03b29e70) line 537 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x01082c20) line 498 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x00870b12, unsigned int 49389, unsigned int 0,
long 17312800) line 972 + 9 bytes
USER32! 77e71268()
01082c20()
Adding Rick and Vidur to cc list, since this is happening when ParseFragment is
called on a fragment which contains a meta charset tag, which incorrectly
triggers a reload.

Perhaps the parser should ignore meta charset tags when parsing fragments -- or
will that cause problems for people who want to be able to paste html with a
different charset than the one currently in the document?
Akkana: who do you think this should be assigned to...its a PDT+ bug and the
fix lives in layout.

- rhp
I really don't know -- I've sent mail to Rick, Vidur and Ftang asking them to
take a look at the bug and venture an opinion.
Whiteboard: [PDT+] → [PDT+] Need Gecko help
Whiteboard: [PDT+] Need Gecko help → [PDT+] rickg to make it not crash; real fix after t'giving
Assignee: rhp → rickg
Status: ASSIGNED → NEW
Hi Rick,
Since we have a plan for this bug, I figured I would update it and pass it over
to you. Then, when you are done, you can pass it to Akkana for her API updates
and finally back to me for the insert call changes.

After you fix the crash, we should probably take it off of the PDT radar.

Thanks for the help!

- rhp

Here is the plan of attack:


Here's the problem as far as I can tell:

Rich wants to insert an HTML fragment into an existing document for the purpose
of block quoting. The fragment he's inserting contains
a <meta> tag with a charset specifier. (Note: The parsing engine has observers
for tags, and the i18n library ties into this notification
system for the purpose of charset detection). When ParseFragment() is called,
the <meta> tag is observed by the i18n library, which
detects the charset specifier. As a result, the i18n library tells the parser
to stop loading the document, and then it tells the webshell to
reload the document using a different charset.
Since this was a fragment and not a document, we get a crash, though I didn't
check into why we are crashing exactly.

The solution: First, we'll disable <meta> observation on HTML fragments.
Second, we need to extend the ParseFragment() api to
include a charset specifier. Anyone who wants to call this method will need to
determine the charset of the fragment in advance. Frank
Tang has a few i18n library calls to do this: nsIPlatformCharset() and
nsICharsetDetector().

I'll be out the rest of this week, but I'll add a quick hack tonight to disable
notification when ParseFragment() is called. When I return, I'll
extend the API to require a charset specifier. Akkana will need to update her
calls to ParseFragment() to include a charset.
I don't know what an HTML fragment really is, but should it be including
<HEAD> info?  <META> tags are only legal in the HTML head and not in the body.
Whiteboard: [PDT+] rickg to make it not crash; real fix after t'giving → [PDT-] rickg to make it not crash; real fix after t'giving
We believe this is fixed. Should not crash anymore.  Please re-test.  Putting on
 PDT-.  Please remove this if crash still occurs.
Assignee: rickg → rhp
This has been fixed for some time. BobJ: <META...> should only occur in the
head, but a tremendous amount of HTML on the web has them appearing virtually
anywhere in the document, and it's something we must support. I've broadened the
parseFragment() api, but not provided an implementation as of yet. Reassigning
back to rich.
Status: NEW → ASSIGNED
Target Milestone: M12 → M13
Since the crashing nature of this has been fixed, I'm moving to M13 and I will
work on using the new API.

- rhp
Summary: [DOGFOOD] Reply/Quoting an HTML attachment leads to a crash under HTML send option → [DOGFOOD] Need to parse any quoted HTML and pass in charset for insert operation
** Checked with 12/6/99 Win32 build  **

The crash bug does occur if the auto-detction module for Japanese is turned. Without the auto-detection
module tunred off, the crash does not occur. The steps to reproduce this problem are as follows.

1. The above Smoketesy.zip file contains 5 msgs.
2. The 3rd msg from top is a JPN message body with an HTML attachment (Netscape
   Home Page which was sent by 4.6 using "Send Page" option).
3. On the Browser window, select "View | Auto-Detect | Japanese".
4. Now back to Mail, select the 3rd msg on IMAP or POP server.
   occurs whether or not the attachment display is correct.)
5. Now engage Reply / w auto-quoting under HTML mail send option.
6. In the process of assembling this message, Mozilla crashes.

Note: Turn off Japanese auto-detection by choosing "View | Auto-Detect | off". Then follow steps 4 and 5. The
         crash does not occur.
Apparently the reason that the crash does not occur when the auto-detection is turned off
is that quoting of Japanese attachment does not occur in that case -- this could be another bug.
Naoki was able to reproduce this problem with non-Japanese page and without
the auto-detect module turned on.

To reproduce with a Swedish page:

1. Using 4.x, send this page to yourself:

   http://cnn.passagen.se/ekonomi/article.jhtml?articleID=556254

2. receive it with Mozilla.
3. Don't have any auto-detect module turned. Then engage reply button.
4. This should lead to a crash.

Here's Naoki's Talkback incident report:

--------------------------------------------------

Trigger Type:  Program Crash

 Trigger Reason:  Access violation

 Call Stack:    (Signature = nsBlockFrame::DoRemoveFrame 0f2762ae)

      nsBlockFrame::DoRemoveFrame

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 4816]

      nsBlockFrame::DeleteChildsNextInFlow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 4833]

      nsBlockReflowContext::ReflowBlock

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockReflowContext.cpp, line 354]

      nsBlockFrame::ReflowBlockFrame

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3260]

      nsBlockFrame::ReflowLine

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2630]

      nsBlockFrame::ReflowDirtyLines

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2437]

      nsBlockFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 1491]

      nsBlockReflowContext::ReflowBlock

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockReflowContext.cpp, line 260]

      nsBlockFrame::ReflowBlockFrame

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3260]

      nsBlockFrame::ReflowLine

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2630]

      nsBlockFrame::ReflowDirtyLines

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2437]

      nsBlockFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 1491]

      nsAreaFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsAreaFrame.cpp, line 275]

      nsContainerFrame::ReflowChild

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 628]

      RootFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.cpp, line 334]

      nsContainerFrame::ReflowChild

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 628]

      nsScrollPortFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsScrollPortFrame.cpp, line 405]

      nsContainerFrame::ReflowChild

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 628]

      nsGfxScrollFrameInner::ReflowFrame

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsGfxScrollFrame.cpp, line 1197]

      nsGfxScrollFrameInner::ReflowScrollArea

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsGfxScrollFrame.cpp, line 1262]

      nsGfxScrollFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsGfxScrollFrame.cpp, line 469]

      nsContainerFrame::ReflowChild

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 628]

      ViewportFrame::Reflow

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 527]

      nsHTMLReflowCommand::Dispatch

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowCommand.cpp, line 145]

      PresShell::ProcessReflowCommands

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 1706]

      PresShell::ExitReflowLock

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 766]

      PresShell::ContentAppended

[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 2160]

      nsDocument::ContentAppended
                                                                                        [d:\builds\seamonkey\mozilla\layout\base\src\nsDocument.cpp,
line 1545]

      nsHTMLDocument::ContentAppended

[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLDocument.cpp, line 1041]

      nsGenericHTMLContainerElement::AppendChildTo

[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp, line 2963]

      nsGenericHTMLContainerElement::InsertBefore

[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp, line 2618]

      nsHTMLTableElement::InsertBefore

[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLTableElement.cpp, line 120]

      InsertElementTxn::Do
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\InsertElementTxn.cpp,
line 106]

      nsTransactionItem::Do

[d:\builds\seamonkey\mozilla\editor\txmgr\src\nsTransactionItem.cpp, line 108]

      nsTransactionManager::BeginTransaction

[d:\builds\seamonkey\mozilla\editor\txmgr\src\nsTransactionManager.cpp, line 1035]

      nsTransactionManager::Do

[d:\builds\seamonkey\mozilla\editor\txmgr\src\nsTransactionManager.cpp, line 124]

      nsEditor::Do
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsEditor.cpp, line 393]

      nsEditor::InsertNode
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsEditor.cpp, line 980]

      nsHTMLEditor::InsertHTML
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditor.cpp,
line 1438]

      nsHTMLEditor::InsertAsCitedQuotation
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditor.cpp,
line 3792]

      nsHTMLEditorLog::InsertAsCitedQuotation
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditorLog.cpp,
line 463]

      nsHTMLEditor::InsertAsQuotation
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditor.cpp,
line 3684]

      nsHTMLEditorLog::InsertAsQuotation
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditorLog.cpp,
line 423]

      nsEditorShell::InsertAsQuotation
                                                                                        [d:\builds\seamonkey\mozilla\editor\base\nsEditorShell.cpp, line
1975]

      nsMsgCompose::ConvertAndLoadComposeWindow

[d:\builds\seamonkey\mozilla\mailnews\compose\src\nsMsgCompose.cpp, line 246]

      QuotingOutputStreamListener::OnStopRequest

[d:\builds\seamonkey\mozilla\mailnews\compose\src\nsMsgCompose.cpp, line 1172]

      nsStreamConverter::OnStopRequest

[d:\builds\seamonkey\mozilla\mailnews\mime\src\nsStreamConverter.cpp, line 736]

      nsOnStopRequestEvent::HandleEvent

[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line 279]

      nsStreamListenerEvent::HandlePLEvent

[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line 94]

      PL_HandleEvent
                                                                                        [plevent.c, line 523]

      _md_EventReceiverProc
                                                                                        [plevent.c, line 951]

      USER32.dll + 0x1250 (0x77e71250)

--------------------------------------------------
Is this the same bug?
The Swedish page mentioned above (1) does not have any <META> tags, and
(2)it uses <LAYER> tags...

<LAYER> tags are not supported right now, but they shouldn't shouldn't
cause a crash (if that ***is*** the problem).
*** Bug 21218 has been marked as a duplicate of this bug. ***
With linux 121411-M12 build, the crash still happens when replying in plain text
mode with charset auto detector turned on. When the charset auto detector is
turned off, the crash doesn't happen either in plain text or HTML mode.
On 12/14/99 Win32 M12 build (1999121408), I can also reproduce
this problem under plain text send option only  with the Auto-Detect
(Japanese) turned on. When it is off, the attachment does not
get quoted and so apparently avoids this crash.
Do you (ji and momoi) have stack traces for your crashes?  Or, are they the
same as the ones already in the bug report?

Is crashing on quote replies with Japanese auto-detect on, a dogfood problem?
Seems like this is the normal state for users reading/writing Japanese email.
This was demoted when we thought the crashing was fixed, if we need to
reconsider, please clear "[PDT-]" from the Whiteboard and explain why.

Also, I'm confused by the symptom and the analyis. Why would whether Japanese
auto-detect is on or off, affect the pasting of a fragment?  No matter what
was detected, aren't we always going to include a META tag in the pasted
fragment?
Here's the dump I got today with 12/14/99 Win32 build using the
steps I described above. Does not look the same as the one before.

-------------------------
Trigger Type:  Program Crash

 Trigger Reason:  Access violation

 Call Stack:    (Signature = nsDocLoaderImpl::GetContentViewerContainer
eec3f3d3)

   nsDocLoaderImpl::GetContentViewerContainer

[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 810]

   nsObserverBase::NotifyWebShell

[d:\builds\seamonkey\mozilla\intl\chardet\src\nsObserverBase.cpp, line 60]

   nsMetaCharsetObserver::Notify

[d:\builds\seamonkey\mozilla\intl\chardet\src\nsMetaCharsetObserver.cpp, line
267]

   nsMetaCharsetObserver::Notify

[d:\builds\seamonkey\mozilla\intl\chardet\src\nsMetaCharsetObserver.cpp, line
145]

   nsObserverNotifier::operator()

[d:\builds\seamonkey\mozilla\htmlparser\src\nsDTDUtils.h, line 322]

   nsDeque::FirstThat

[d:\builds\seamonkey\mozilla\xpcom\ds\nsDeque.cpp, line 365]

   CObserverService::Notify

[d:\builds\seamonkey\mozilla\htmlparser\src\nsDTDUtils.cpp, line 928]

   CNavDTD::WillHandleStartTag

[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 1101]

   CNavDTD::HandleStartToken

[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 1286]

   CNavDTD::HandleToken

[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 764]

   CNavDTD::BuildModel

[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 528]

   nsParser::BuildModel

[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 1044]

   nsParser::ResumeParse

[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 968]

   nsParser::Parse

[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 845]

   ConvertBufToPlainText

[d:\builds\seamonkey\mozilla\mailnews\compose\src\nsMsgCompUtils.cpp, line 1952]

   QuotingOutputStreamListener::ConvertToPlainText

[d:\builds\seamonkey\mozilla\mailnews\compose\src\nsMsgCompose.cpp, line 1049]

   QuotingOutputStreamListener::OnStopRequest

[d:\builds\seamonkey\mozilla\mailnews\compose\src\nsMsgCompose.cpp, line 1161]

   nsStreamConverter::OnStopRequest

[d:\builds\seamonkey\mozilla\mailnews\mime\src\nsStreamConverter.cpp, line 736]

   nsOnStopRequestEvent::HandleEvent

[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
279]

   nsStreamListenerEvent::HandlePLEvent

[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
94]

   PL_HandleEvent
                                                  [plevent.c, line 523]

   _md_EventReceiverProc
                                                  [plevent.c, line 951]

   USER32.dll + 0x1186 (0x77e41186)

----------------------------------------------
The crashes we are seeing recently may not be related to
the original bug I reported. If so, we probably should create
another bug for this latetr problem.
Create a new bug please.
Eventually, we will scan the data to insert for the charset and pass that in to
the insert call. No META tags.

- rhp
The crashing part of this bug seems like a beta stopper.
This bug got too cluttered with 3 different types of crash reports.
So, let me sort these out here as of 12/23/99 Win32 M13 build.

There are 3 types of crashes reported in this bug:

1. The original crash bug whose stack trace shows: nsHTMLDivElement::Release
   as the beginning line.
   This was obtained with HTML send option and no auto-detection modules ON.
   This crash no longer occurs with the above M13 build.

2. The 2nd type of crash was mentioned bv rhp. This involves:

   nsDocLoaderImpl::GetContentViewerContainer

   this still occurs when the 3rd Intl Smoketest msg is replied using
   Plain text option on with the Japanese auto-detection ON.
   This crash will not happen if HTML option used or if
   the auto-detection is OFF. The latter is because wuoting of
   the attachment does not occur under that condition.

   I and also ji recently reported this crash with M12 release build.

3. The 3rd type of crash was originally found by nhotta
   and was reported here by me. ducarroz's example
   also seems to be this one. This one involves:

   nsBlockFrame::DoRemoveFrame

   and ths still occurs with the above M13 build. I have a
   crash report today which looks exactly like the one
   mentioned in my comment on 12/6/99.

I don't think it wise to deal with all these bugs under one
umbrella given the differences in stack traces.

Since the original bug is gone now (type 1 above), I want to
suggest that we keep this bug for Type 2. I'll file a new bug
for Type 3.

Here's a fresh stack trace on this bug produced by attaching the CNN page
to mail and then reply/quoting with Mozilla, and here's how to reproduce
this crash:


1. Using 4.x, send this page to yourself:

   http://cnn.passagen.se/ekonomi/article.jhtml?articleID=556254

2. receive it with Mozilla.
3. Don't have any auto-detect module turned. Then engage reply button.
4. This should lead to a crash.

-----------------------------------------------------

Trigger Type:  Program Crash
Trigger Reason:  Access violation
Call Stack:    (Signature = nsBlockFrame::DoRemoveFrame b3e6130d)
nsBlockFrame::DoRemoveFrame
[d:\builds\seamonkey\mozilla\layout\html\base\src\ns  BlockFrame.cpp, line
4809]
nsBlockFrame::DeleteChildsNextInFlow
[d:\builds\seamonkey\mozilla\layout\html\ba  se\src\nsBlockFrame.cpp, line
4826]
nsBlockReflowContext::ReflowBlock
[d:\builds\seamonkey\mozilla\layout\html\base\  src\nsBlockReflowContext.cpp,
line 354]
nsBlockFrame::ReflowBlockFrame
[d:\builds\seamonkey\mozilla\layout\html\base\src  \nsBlockFrame.cpp, line
3251]
nsBlockFrame::ReflowLine
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlo  ckFrame.cpp, line
2621]
nsBlockFrame::ReflowDirtyLines
[d:\builds\seamonkey\mozilla\layout\html\base\sr  c\nsBlockFrame.cpp, line
2428]
nsBlockFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFr  ame.cpp, line
1492]
nsBlockReflowContext::ReflowBlock
[d:\builds\seamonkey\mozilla\layout\html\base\  src\nsBlockReflowContext.cpp,
line 260]
nsBlockFrame::ReflowBlockFrame
[d:\builds\seamonkey\mozilla\layout\html\base\src  \nsBlockFrame.cpp, line
3251]
nsBlockFrame::ReflowLine
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlo  ckFrame.cpp, line
2621]
nsBlockFrame::ReflowDirtyLines
[d:\builds\seamonkey\mozilla\layout\html\base\src  \nsBlockFrame.cpp, line
2428]
nsBlockFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFr  ame.cpp, line
1492]
nsAreaFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsAreaFram  e.cpp, line 275]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\  nsContainerFrame.cpp, line
644]
RootFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.  cpp, line 334]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src  \nsContainerFrame.cpp, line
644]
nsScrollPortFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsSc  rollPortFrame.cpp, line
405]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\  nsContainerFrame.cpp, line
644]
nsGfxScrollFrameInner::ReflowFrame
[d:\builds\seamonkey\mozilla\layout\html\bas  e\src\nsGfxScrollFrame.cpp, line
1254]
nsGfxScrollFrameInner::ReflowScrollArea
[d:\builds\seamonkey\mozilla\layout\htm  l\base\src\nsGfxScrollFrame.cpp, line
1319]
nsGfxScrollFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsGfx  ScrollFrame.cpp, line
521]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\  nsContainerFrame.cpp, line
644]
ViewportFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewpo  rtFrame.cpp, line
527]
nsHTMLReflowCommand::Dispatch
[d:\builds\seamonkey\mozilla\layout\html\base\src\  nsHTMLReflowCommand.cpp,
line 145]
PresShell::ProcessReflowCommands
[d:\builds\seamonkey\mozilla\layout\html\base\  src\nsPresShell.cpp, line 1842]
PresShell::ExitReflowLock
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsP  resShell.cpp, line 825]
PresShell::ContentAppended
[d:\builds\seamonkey\mozilla\layout\html\base\src\ns  PresShell.cpp, line 2296]
nsDocument::ContentAppended
[d:\builds\seamonkey\mozilla\layout\base\src\nsDocu  ment.cpp, line 1545]
nsHTMLDocument::ContentAppended
[d:\builds\seamonkey\mozilla\layout\html\documen  t\src\nsHTMLDocument.cpp,
line 1110]
nsGenericContainerElement::AppendChildTo
[d:\builds\seamonkey\mozilla\layout\b  ase\src\nsGenericElement.cpp, line 2146]
nsGenericHTMLContainerElement::InsertBefore
[d:\builds\seamonkey\mozilla\layout\
html\content\src\nsGenericHTMLElement.cpp, line 2618]
nsHTMLTableCellElement::InsertBefore
[d:\builds\seamonkey\mozilla\layout\html\c
ontent\src\nsHTMLTableCellElement.cpp]
InsertElementTxn::Do
[d:\builds\seamonkey\mozilla\editor\base\InsertElementTxn.c  pp, line 106]
nsTransactionItem::Do
[d:\builds\seamonkey\mozilla\editor\txmgr\src\nsTransactio  nItem.cpp, line
108]
nsTransactionManager::BeginTransaction
[d:\builds\seamonkey\mozilla\editor\txm  gr\src\nsTransactionManager.cpp, line
1035]
nsTransactionManager::Do
[d:\builds\seamonkey\mozilla\editor\txmgr\src\nsTransa  ctionManager.cpp, line
124]
nsEditor::Do [d:\builds\seamonkey\mozilla\editor\base\nsEditor.cpp, line 395]
  nsEditor::InsertNode  [d:\builds\seamonkey\mozilla\editor\base\nsEditor.cpp,
l  ine 993]
nsHTMLEditor::InsertHTML
[d:\builds\seamonkey\mozilla\editor\base\nsHTMLEditor.c  pp, line 1493]
nsHTMLEditor::InsertAsCitedQuotation
[d:\builds\seamonkey\mozilla\editor\base\ns  HTMLEditor.cpp, line 3864]
nsHTMLEditorLog::InsertAsCitedQuotation
[d:\builds\seamonkey\mozilla\editor\base  \nsHTMLEditorLog.cpp, line 463]
nsHTMLEditor::InsertAsQuotation
[d:\builds\seamonkey\mozilla\editor\base\nsHTML  Editor.cpp, line 3755]
nsHTMLEditorLog::InsertAsQuotation
[d:\builds\seamonkey\mozilla\editor\base\nsH  TMLEditorLog.cpp, line 423]
nsEditorShell::InsertAsQuotation
[d:\builds\seamonkey\mozilla\editor\base\nsEdi  torShell.cpp, line 2002]
nsMsgCompose::ConvertAndLoadComposeWindow
[d:\builds\seamonkey\mozilla\mailnews\  compose\src\nsMsgCompose.cpp, line 246]
QuotingOutputStreamListener::OnStopRequest
[d:\builds\seamonkey\mozilla\mailnews  \compose\src\nsMsgCompose.cpp, line
1172]
nsStreamConverter::OnStopRequest
[d:\builds\seamonkey\mozilla\mailnews\mime\src\  nsStreamConverter.cpp, line
744]
nsOnStopRequestEvent::HandleEvent
[d:\builds\seamonkey\mozilla\netwerk\base\src  \nsAsyncStreamListener.cpp, line
279]
nsStreamListenerEvent::HandlePLEvent
[d:\builds\seamonkey\mozilla\netwerk\base\  src\nsAsyncStreamListener.cpp, line
94]
PL_HandleEvent [plevent.c, line 523]
_md_EventReceiverProc [plevent.c, line 951]
USER32.dll + 0x1186 (0x77e41186)
-----------------------------------------------------
I'm sorry, what I mean to say above is that we keep this bug
for Type 3 crash - CNN Swedish page bug, and file a new
one for Type 2 as analyzed by Rich. I'll do the latter now.
Assignee: rhp → rickg
Status: ASSIGNED → NEW
Summary: [DOGFOOD] Need to parse any quoted HTML and pass in charset for insert operation → [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to a crash
Whiteboard: [PDT-] rickg to make it not crash; real fix after t'giving
The reason I'm suggesting to keep this bug for type 3 crash is
that both type 3 and the original crash bug seem to have something
to do with parsing HTML elements. This is thus not rhp's bug any more.

The original bug seems to have been fixed. See for example
 -- rickg@netscape.com  1999-12-05 17:25 -- comment.

But a simialr bug crashing bugs still exists as caused by
replying to a msg which contains CNN Swedish page as an
attachment as described in -- momoi@netscape.com  1999-12-25 02:22 --
along with the crash report. (See the updated URL above also.)

I therefore corrected the summary line and now send it to
rickg.

The Type 2 bug under the Plain Text mail send option and reply/quoting
an atatched document which contains an meta charset tag was filed
as Bug 22655 and assigned to rhp.

As this is a crasher, this should be marked [Beta stopper].
Whiteboard: [PDT-]
I'll render a preliminary PDT- for the team. This does not appear to be a
pervasive problem that precludes use be dedicated dogfood eaters.  If I'm
underastimating the impact, please delete the PDT annotation, and add a comment
to explain the broader impact.
Thanks,
Jim
Assignee: rickg → troy
Troy -- is the block frame crash below something you can address?  Thanks.
Assignee: troy → kipp
Block/inline bug
Summary: [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to a crash → [BLOCK] [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to a crash
any chance of getting a simpler test case, especially one that doesn't involve
mail?  I've had trouble getting into mail the past few days.  Today, I can't log
on.  No matter what I try, it tells me my password is invalid.
Assignee: kipp → buster
assigning to myself
I don't see this crash today (winNT, debug build, source pulled 1/12/00pm).  Can
you verify that it still crashes?

What I see is the page loads into the reply compose window, but it continually
reloads because of the ad banner.  That's a URL loader bug for travis or mscott,
probably.
I don't see a crash with 1/11/00 Win32 build, either.
(We haven't had a good mail build since that time to
display and let alone reply to a msg.)

The infinite loop is there, however.

Ehat would be the best thing to do here? Keep it open
and monitor it while working on the loop problem?
Assignee: buster → mscott
Summary: [BLOCK] [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to a crash → [BLOCK] [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to infinite loop
The crash is gone, replaced by an infinite loop that seems to be triggered by
the ad banner.  Reassigning to mscott, maybe a URL loading problem?  cc'ing
travis and rpotts.
wow, this is a long bug report...Kat, can you summarize for me what is still
causing a problem? (i.e. what I need to do to see it) Thanks!
Target Milestone: M13 → M14
I'll take a look at this in M14....
When I do send page from 4.5 then turn around and get the message in 5.0 and
then reply to it, the quoting in 5.0 only shows the url, it doesn't try to
layout the page in the reply window. So I don't see an infinite loading loop
here. I wonder what I'm doing wrong.
I don't we'll be able to see what the current status of this bug is until Bug 23931
is fixed. That bug makes it impossible to quote HTML attachment material at present.
The dependency is now marked.
Depends on: 23931
Putting dogfood in the keyword field.
Keywords: dogfood
Summary: [BLOCK] [DOGFOOD] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to infinite loop → [BLOCK] HTML Reply/quoting of CNN Swedish page containing certain HTML elements leads to infinite loop
Moving my remaining M14 bugs to M15 which is the next targeted milestone.
Target Milestone: M14 → M15
bulk move to M16. Not an M15 stopper.  If you disagree, pls comment in bug and 
cc: selmer@netscape.com
Target Milestone: M15 → M16
Is this still dogfood??
Whiteboard: [PDT-]
** Checked with 5/20/2000 Win32 build **

The crash was real problem for M15/Beta1/NS PR1 builds.
With todya's build above, I ran through all the cases I have
which induced this crash (type 3 above) and none is causing
the crash described in this report any more. 

I'm happy to say that this is now "Worksforme".
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
Verified as Worksforme with the above Win32 build.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: