Closed Bug 75844 Opened 23 years ago Closed 23 years ago

XMLExtras nsIDOMParser.parseFromStream kills browser on second call

Categories

(Core :: XML, defect, P1)

x86
Windows 2000
defect

Tracking

()

RESOLVED WORKSFORME
mozilla0.9.3

People

(Reporter: pwilson, Assigned: hjtoi-bugzilla)

Details

(Keywords: crash, testcase)

Attachments

(5 files)

I hav a test XUL/js script to load and parse an XML document into a DOM. When I
comment in the code for parseFromStream the DOM is correctly produced on the
first call. The second call kills the browser with no indication of the problem.

I believe this method is using async processing internally, but I am forced to
perform a channel.open() in order to provide required the input stream. Surely
this method should accept a channel so that is can open it iternally in the
desired sync/async mode?
 
Script attached.
Attached file test javascript
Downloaded new version of browser (2001041220).
Captured Quality Feedback dump after browser crash.
Dump tagged with this bug number.
XMLExtras --> heikki
Assignee: harishd → heikki
Reporter do you have the talkback id from the crash?
Severity: normal → critical
Keywords: crash, testcase
Keep trying to send it...once it gets through it will give you the talkback id.
The attachment doesnt tell us much.
The talkback agent successfully sends the dump and then terminates. No talkback 
id is displayed. Am I supposed to get a mail-back? perhaps the Win32 agent is 
different.

I included this bug number as the only item in the talkback description field.
Is this enough to help you find it?

PS. Sometimes it takes three cycles through the button click code to cause it to 
crash.
I finally found out how to get a talklback id.

1. Turn off your rmodem.
2. cause the bug.
3. load talkback.exe
4. turn your modem back on
5. send talkback.

Easy! If you leave your modem on no incident appears in the talkback.exe 
display.

The number you are looking for is TB29453202K
   MSVCRT.DLL + 0x47f2 (0x780047f2)    nsPref::UnregisterCallback  
[d:\builds\seamonkey\mozilla\modules\libpref\src\nsPref.cpp, line 1247]
nsJSContext::JSOptionChangedCallback  
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 281]
nsJSContext::`scalar deleting destructor'    nsJSContext::Release  
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp]
nsCOMPtr_base::~nsCOMPtr_base  
[d:\builds\seamonkey\mozilla\xpcom\base\nsCOMPtr.cpp, line 50]
nsJSContext::CallEventHandler  
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp]
nsJSEventListener::HandleEvent  
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 155]
nsEventListenerManager::HandleEventSubType  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1034]
nsEventListenerManager::HandleEvent  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1956]
nsXULElement::HandleDOMEvent  
[d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3673]
PresShell::HandleDOMEventWithTarget  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5455]
nsButtonBoxFrame::MouseClicked  
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsButtonBoxFrame.cpp, line 181]
nsButtonBoxFrame::HandleEvent  
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsButtonBoxFrame.cpp, line 128]
PresShell::HandleEventInternal  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5424]
PresShell::HandleEventWithTarget  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5379]
nsEventStateManager::CheckForAndDispatchClick  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 2294]
nsEventStateManager::PostHandleEvent  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 1394]
PresShell::HandleEventInternal  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5428]
PresShell::HandleEvent  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5334]
nsView::HandleEvent   [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 377]
nsViewManager::DispatchEvent  
[d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2039]
HandleEvent   [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 68]
nsWindow::DispatchEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 708]
nsWindow::DispatchWindowEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 725]
nsWindow::DispatchMouseEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4030]
ChildWindow::DispatchMouseEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4273]
nsWindow::ProcessMessage  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3038]
nsWindow::WindowProc  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 960]
USER32.DLL + 0x3eb0 (0x77e13eb0)
USER32.DLL + 0x401a (0x77e1401a)
USER32.DLL + 0x92da (0x77e192da)
nsWebShellWindow::ShowModal  
[d:\builds\seamonkey\mozilla\xpfe\appshell\src\nsWebShellWindow.cpp, line 1082]
nsContentTreeOwner::ShowAsModal  
[d:\builds\seamonkey\mozilla\xpfe\appshell\src\nsContentTreeOwner.cpp, line 393]
nsWindowWatcher::OpenWindowJS  
[d:\builds\seamonkey\mozilla\embedding\components\windowwatcher\src\nsWindowWatcher.cpp,
line 655]
nsWindowWatcher::OpenWindow  
[d:\builds\seamonkey\mozilla\embedding\components\windowwatcher\src\nsWindowWatcher.cpp,
line 392]
nsPromptService::DoDialog  
[d:\builds\seamonkey\mozilla\embedding\components\windowwatcher\src\nsPromptService.cpp,
line 585]
nsPromptService::Alert  
[d:\builds\seamonkey\mozilla\embedding\components\windowwatcher\src\nsPromptService.cpp,
line 122]
nsPrompt::Alert  
[d:\builds\seamonkey\mozilla\embedding\components\windowwatcher\src\nsPrompt.cpp,
line 109]
GlobalWindowImpl::Alert  
[d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 1569]
WindowInternalAlert   [d:\builds\seamonkey\mozilla\dom\src\base\nsJSWindow.cpp,
line 3189]
js_Invoke   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 815]
js_Interpret   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2707]
js_Invoke   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line
831]js_Interpret   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2707]
js_Invoke   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 831]
js_InternalInvoke   [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 903]
JS_CallFunctionValue   [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 3336]
nsJSContext::CallEventHandler  
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 943]
nsJSEventListener::HandleEvent  
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 155]
nsEventListenerManager::HandleEventSubType  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1034]
nsEventListenerManager::HandleEvent  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1202]
nsXULElement::HandleDOMEvent  
[d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3673]
PresShell::HandleEventInternal  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5407]
PresShell::HandleEventWithTarget  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5379]
nsEventStateManager::CheckForAndDispatchClick  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 2294]
nsEventStateManager::PostHandleEvent  
[d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 1394]
PresShell::HandleEventInternal  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5428]
PresShell::HandleEvent  
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5334]
nsView::HandleEvent   [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 377]
nsViewManager::DispatchEvent  
[d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2039]
HandleEvent   [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 68]
nsWindow::DispatchEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 708]
nsWindow::DispatchWindowEvent  
[d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 725]
Moving to Prefs:Backend and assigning to Bryner.
Assignee: heikki → bryner
Status: UNCONFIRMED → NEW
Component: Parser → Preferences: Backend
Ever confirmed: true
huh? why is this assigned to me?
moving per bryner & my discussion yesterday
Assignee: bryner → dveditz
QA Contact: bsharma → sairuh
QA Contact: sairuh → bsharma
Assignee: dveditz → bnesse
I think Brian owns prefs now. I know I don't
I can't reproduce the stack crawl described above. Probably due to a large number 
of changes to the EventListener codebase. Here's what I'm seeing when I try to 
reproduce.

First I get these assertions...

###!!! ASSERTION: morkBool_kFalse: '0', file morkConfig.cpp, line 78
###!!! ASSERTION: getting synchronous callback from netlib: '! mSyncCallback', 
file nsCSSLoader.cpp, line 877
###!!! ASSERTION: broken loading table: 'oldData == aLoadData', file 
nsCSSLoader.cpp, line 695

followed by a crash with the following stack:
 Calling chain using A6/R1 links
  Back chain  ISA  Caller
  00000000    PPC  0ECAD050  
  0A354D70    PPC  0EC8F680  main+001AC
  0A354D10    PPC  0EC8C2A0  main1(int, char**, nsISupports*)+009F0
  0A354A80    PPC  0E5B4718  nsAppShellService::Run()+00054
  0A354A30    PPC  0E5588F0  nsAppShell::Run()+0004C
  0A3549F0    PPC  0E5594F8  nsMacMessagePump::DoMessagePump()+00044
  0A3549A0    PPC  0E559E70  nsMacMessagePump::DispatchEvent(int, EventRecord*)+
001B0
  0A354950    PPC  0E579074  Repeater::DoRepeaters(const EventRecord&)+0003C
  0A354900    PPC  0E540238  nsMacNSPREventQueueHandler::RepeatAction(const 
EventRecord&)+00014
  0A3548C0    PPC  0E540848  nsMacNSPREventQueueHandler::ProcessPLEventQueue()+
00180
  0A354840    PPC  0E98D79C  nsEventQueueImpl::ProcessPendingEvents()+00068
  0A3547D0    PPC  0E9FEE40  PL_ProcessPendingEvents+000AC
  0A354780    PPC  0E9FF094  PL_HandleEvent+00054
  0A354740    PPC  0E21F784  nsARequestObserverEvent::HandlePLEvent(PLEvent*)+
0004C
  0A354700    PPC  0E20E8E4  nsOnDataAvailableEvent::HandleEvent()+002AC
  0A354680    PPC  0E1F2DE4  nsFileChannel::OnDataAvailable(nsIRequest*, 
nsISupports*, nsIInputStream*, unsigned int, unsigned int)+000A8
  0A354620    PPC  0E0C2840  nsDocumentOpenInfo::OnDataAvailable(nsIRequest*, 
nsISupports*, nsIInputStream*, unsigned int, unsigned int)+000A0
  0A3545D0    PPC  0E11E160  nsParser::OnDataAvailable(nsIRequest*, nsISupports*, 
nsIInputStream*, unsigned int, unsigned int)+001A0
  0A354560    PPC  0E11D0C4  nsParser::ResumeParse(int, int)+00188
  0A354500    PPC  0E11D35C  nsParser::BuildModel()+00094
  0A3544B0    PPC  0E124628  CWellFormedDTD::BuildModel(nsIParser*, nsITokenizer*
, nsITokenObserver*, nsIContentSink*)+00078
  0A354450    PPC  0E124FEC  CWellFormedDTD::HandleToken(CToken*, nsIParser*)+
000B8
  0A354400    PPC  0E125390  
CWellFormedDTD::HandleProcessingInstructionToken(CToken*)+0008C
  0A354380    PPC  0CFD222C  nsXMLContentSink::AddProcessingInstruction(const 
nsIParserNode&)+00548
  0A353AF0    PPC  0CFD00D8  nsXMLContentSink::ProcessStyleLink(nsIContent*, 
const nsString&, int, const nsString&, const nsString&, const nsString&)+00094
  0A353A90    PPC  0CFD04B0  nsXMLContentSink::ProcessCSSStyleLink(nsIContent*, 
const nsString&, int, const nsString&, const nsString&, const nsString&)+00224
  0A3538E0    PPC  0D01EC98  CSSLoaderImpl::LoadStyleLink(nsIContent*, nsIURI*, 
const nsString&, const nsString&, int, int, nsIParser*, int&, 
nsICSSLoaderObserver*)+0097C
  0A3536E0    PPC  0D01D9D0  CSSLoaderImpl::LoadSheet(URLKey&, SheetLoadData*)+
00698
  0A353510    PPC  0E1BE690  nsStreamLoader::Init(nsIURI*, 
nsIStreamLoaderObserver*, nsISupports*, nsILoadGroup*, nsIInterfaceRequestor*, 
unsigned int)+00330
  0A353440    PPC  0E9CA6D8  
nsProxyObjectManager::GetProxyForObject(nsIEventQueue*, const nsID&, nsISupports*
, int, void**)+003E0
 Closing log

I'm not sure where this belongs, but it's not preferences... over to XML which is 
my best guess for an owner...
Component: Preferences: Backend → XML
Hmmm, lets try the button that says "reassign bug" this time.
Assignee: bnesse → heikki
QA Contact: bsharma → petersen
Priority: -- → P1
Target Milestone: --- → mozilla0.9.3
I am unable to produce the first stack trace. The testcase from Peter causes
crash on loading, which seems to be new behaviour and not what this bug is
reporting (I think bnesse was seeing that too). That behaviour is probably dupe
of bug 75633.

My testcase shows that parseFromStream is working just fine (you need to save
test to disc, have an XML test file on the disc, and change the URI in the
testcase to point to the XML file).

Therefore, I am marking this as worksforme.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
QA Contact: petersen → rakeshmishra
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: