Closed Bug 195243 Opened 22 years ago Closed 22 years ago

potential hang in type ahead find

Categories

(SeaMonkey :: Find In Page, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: sspitzer, Assigned: aaronlev)

Details

(Keywords: hang)

Attachments

(1 file)

hang in type ahead find note, the junk (and filter) log is implemented with a browser tag. <browser id="logView" disablehistory="true" disablesecurity="true" src="about:blank" flex="1"/> for bug #191891, I added autofind="false" fixes if you remove that, and bring up the log, and click in it and type, you'll hang. I hung, and broke in the debugger, and was here: nsCOMTypeInfo<nsISimpleEnumerator>::GetIID() line 243 + 8 bytes nsCOMPtr<nsISimpleEnumerator>::nsCOMPtr<nsISimpleEnumerator>(const nsQueryInterface & {...}) line 572 + 5 bytes nsCOMPtr<nsISimpleEnumerator>::Assert_NoQueryNeeded() line 508 nsGetterAddRefs<nsISimpleEnumerator>::~nsGetterAddRefs<nsISimpleEnumerator>() line 1072 nsTypeAheadFind::FindItNow(nsIPresShell * 0x00000000, int 0, int 1, int 1) line 1348 nsTypeAheadFind::HandleChar(unsigned short 115) line 907 + 45 bytes nsTypeAheadFind::KeyPress(nsTypeAheadFind * const 0x00faa9ec, nsIDOMEvent * 0x04c7f150) line 688 + 16 bytes nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x04bc87d8, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, nsIDOMEventTarget * 0x04bc8930, unsigned int 2, nsEventStatus * 0x0012bfac) line 1657 + 41 bytes nsWindowRoot::HandleChromeEvent(nsWindowRoot * const 0x04bc8938, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 215 GlobalWindowImpl::HandleDOMEvent(GlobalWindowImpl * const 0x04bc8628, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 828 nsXULDocument::HandleDOMEvent(nsXULDocument * const 0x04bf7fe0, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 2586 nsXULElement::HandleDOMEvent(nsXULElement * const 0x04bf7600, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3359 + 47 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04c12fe0, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3353 + 61 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04bfde60, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3353 + 61 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04c03b68, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3353 + 61 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04c03c58, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3353 + 61 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04c03e18, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3353 + 61 bytes nsXULElement::HandleChromeEvent(nsXULElement * const 0x04c03e24, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 4475 + 39 bytes GlobalWindowImpl::HandleDOMEvent(GlobalWindowImpl * const 0x04c3abf8, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 828 nsDocument::HandleDOMEvent(nsDocument * const 0x04bf6b10, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 2, nsEventStatus * 0x0012bfac) line 3472 nsGenericElement::HandleDOMEvent(nsGenericElement * const 0x04c7c218, nsIPresContext * 0x04c7ce50, nsEvent * 0x0012c174, nsIDOMEvent * * 0x0012bde4, unsigned int 7, nsEventStatus * 0x0012bfac) line 1965 + 47 bytes PresShell::HandleEventInternal(nsEvent * 0x0012c174, nsIView * 0x04befef0, unsigned int 1, nsEventStatus * 0x0012bfac) line 6226 + 47 bytes PresShell::HandleEvent(PresShell * const 0x04c7d8dc, nsIView * 0x04befef0, nsGUIEvent * 0x0012c174, nsEventStatus * 0x0012bfac, int 1, int & 1) line 6150 + 25 bytes nsViewManager::HandleEvent(nsView * 0x04befef0, nsGUIEvent * 0x0012c174, int 0) line 2162 nsView::HandleEvent(nsViewManager * 0x04be1cd8, nsGUIEvent * 0x0012c174, int 0) line 309 nsViewManager::DispatchEvent(nsViewManager * const 0x04be1cd8, nsGUIEvent * 0x0012c174, nsEventStatus * 0x0012c0e4) line 1938 + 23 bytes HandleEvent(nsGUIEvent * 0x0012c174) line 83 nsWindow::DispatchEvent(nsWindow * const 0x04be18ac, nsGUIEvent * 0x0012c174, nsEventStatus & nsEventStatus_eIgnore) line 1147 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012c174) line 1168 nsWindow::DispatchKeyEvent(unsigned int 131, unsigned short 115, unsigned int 0, long 0) line 3047 + 15 bytes nsWindow::OnChar(unsigned int 115, unsigned int 0, unsigned char 0) line 3242 nsWindow::ProcessMessage(unsigned int 258, unsigned int 115, long 2031617, long * 0x0012c610) line 3953 + 41 bytes nsWindow::WindowProc(HWND__ * 0x005e019c, unsigned int 258, unsigned int 115, long 2031617) line 1434 + 27 bytes USER32! 77e3a290() USER32! 77e145b1() USER32! 77e1a752() nsXULWindow::ShowModal(nsXULWindow * const 0x04bc7710) line 299 nsWebShellWindow::ShowModal(nsWebShellWindow * const 0x04bc7710) line 1106 nsContentTreeOwner::ShowAsModal(nsContentTreeOwner * const 0x04bd8264) line 447 nsWindowWatcher::OpenWindowJS(nsWindowWatcher * const 0x00fbe434, nsIDOMWindow * 0x046f37c4, const char * 0x04bc5000, const char * 0x0012ccc4, const char * 0x0012cd14, int 1, unsigned int 1, long * 0x04bc532c, nsIDOMWindow * * 0x0012cd60) line 790 GlobalWindowImpl::OpenInternal(GlobalWindowImpl * const 0x046f37c0, const nsAString & {...}, const nsAString & {...}, const nsAString & {...}, int 1, long * 0x04bc5320, unsigned int 4, nsISupports * 0x00000000, nsIDOMWindow * * 0x0012d12c) line 4387 + 141 bytes GlobalWindowImpl::OpenDialog(GlobalWindowImpl * const 0x046f37c8, nsIDOMWindow * * 0x0012d12c) line 3070 + 59 bytes XPTC_InvokeByIndex(nsISupports * 0x046f37c8, unsigned int 16, unsigned int 1, nsXPTCVariant * 0x0012d12c) line 102 XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode CALL_METHOD) line 2023 + 42 bytes XPC_WN_CallMethod(JSContext * 0x048a6970, JSObject * 0x03e70248, unsigned int 4, long * 0x04bc5320, long * 0x0012d408) line 1292 + 14 bytes js_Invoke(JSContext * 0x048a6970, unsigned int 4, unsigned int 0) line 843 + 23 bytes js_Interpret(JSContext * 0x048a6970, long * 0x0012e2c8) line 2811 + 15 bytes js_Invoke(JSContext * 0x048a6970, unsigned int 1, unsigned int 2) line 860 + 13 bytes js_InternalInvoke(JSContext * 0x048a6970, JSObject * 0x0470f3b8, long 76151120, unsigned int 0, unsigned int 1, long * 0x0012e524, long * 0x0012e3f4) line 935 + 20 bytes JS_CallFunctionValue(JSContext * 0x048a6970, JSObject * 0x0470f3b8, long 76151120, unsigned int 1, long * 0x0012e524, long * 0x0012e3f4) line 3432 + 31 bytes nsJSContext::CallEventHandler(nsJSContext * const 0x048a68f8, void * 0x0470f3b8, void * 0x0489f950, unsigned int 1, void * 0x0012e524, int * 0x0012e528, int 0) line 1040 + 33 bytes nsJSEventListener::HandleEvent(nsJSEventListener * const 0x04a46f08, nsIDOMEvent * 0x04bc3c88) line 181 + 77 bytes nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x046f6980, nsIDOMEvent * 0x04bc3c88, nsIDOMEventTarget * 0x04bc3dc8, unsigned int 8, unsigned int 7) line 1217 + 20 bytes nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x04a46e90, nsIPresContext * 0x0494eaf8, nsEvent * 0x0012f004, nsIDOMEvent * * 0x0012eeb8, nsIDOMEventTarget * 0x04bc3dc8, unsigned int 7, nsEventStatus * 0x0012f04c) line 2216 + 36 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x04a46e18, nsIPresContext * 0x0494eaf8, nsEvent * 0x0012f004, nsIDOMEvent * * 0x0012eeb8, unsigned int 7, nsEventStatus * 0x0012f04c) line 3336 PresShell::HandleDOMEventWithTarget(PresShell * const 0x049322c0, nsIContent * 0x04a46e18, nsEvent * 0x0012f004, nsEventStatus * 0x0012f04c) line 6289 + 39 bytes nsButtonBoxFrame::MouseClicked(nsIPresContext * 0x0494eaf8, nsGUIEvent * 0x0012f20c) line 200 nsButtonBoxFrame::HandleEvent(nsButtonBoxFrame * const 0x04adc810, nsIPresContext * 0x0494eaf8, nsGUIEvent * 0x0012f20c, nsEventStatus * 0x0012f5a0) line 147 PresShell::HandleEventInternal(nsEvent * 0x0012f20c, nsIView * 0x00000000, unsigned int 1, nsEventStatus * 0x0012f5a0) line 6257 + 38 bytes PresShell::HandleEventWithTarget(PresShell * const 0x049322c0, nsEvent * 0x0012f20c, nsIFrame * 0x04adc810, nsIContent * 0x04a46e18, unsigned int 1, nsEventStatus * 0x0012f5a0) line 6195 + 22 bytes nsEventStateManager::CheckForAndDispatchClick(nsIPresContext * 0x0494eaf8, nsMouseEvent * 0x0012f7a8, nsEventStatus * 0x0012f5a0) line 2850 + 66 bytes nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x0489d918, nsIPresContext * 0x0494eaf8, nsEvent * 0x0012f7a8, nsIFrame * 0x04adc810, nsEventStatus * 0x0012f5a0, nsIView * 0x0494ab98) line 1847 + 23 bytes PresShell::HandleEventInternal(nsEvent * 0x0012f7a8, nsIView * 0x0494ab98, unsigned int 1, nsEventStatus * 0x0012f5a0) line 6262 + 43 bytes PresShell::HandleEvent(PresShell * const 0x049322c4, nsIView * 0x0494ab98, nsGUIEvent * 0x0012f7a8, nsEventStatus * 0x0012f5a0, int 1, int & 1) line 6150 + 25 bytes nsViewManager::HandleEvent(nsView * 0x0494ab98, nsGUIEvent * 0x0012f7a8, int 1) line 2208 nsView::HandleEvent(nsViewManager * 0x0494a958, nsGUIEvent * 0x0012f7a8, int 1) line 309 nsViewManager::DispatchEvent(nsViewManager * const 0x0494a958, nsGUIEvent * 0x0012f7a8, nsEventStatus * 0x0012f6a4) line 1938 + 23 bytes HandleEvent(nsGUIEvent * 0x0012f7a8) line 83 nsWindow::DispatchEvent(nsWindow * const 0x0494ac44, nsGUIEvent * 0x0012f7a8, nsEventStatus & nsEventStatus_eIgnore) line 1147 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f7a8) line 1168 nsWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint * 0x00000000) line 5406 + 21 bytes ChildWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint * 0x00000000) line 5663 nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 787074, long * 0x0012fc38) line 4118 + 28 bytes nsWindow::WindowProc(HWND__ * 0x00e001ac, unsigned int 514, unsigned int 0, long 787074) line 1434 + 27 bytes USER32! 77e3a290() USER32! 77e145b1() USER32! 77e1a752() nsAppShellService::Run(nsAppShellService * const 0x00fa2d88) line 480 main1(int 2, char * * 0x00270030, nsISupports * 0x00f98f40) line 1273 + 32 bytes main(int 2, char * * 0x00270030) line 1636 + 37 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 77e9ca90()
make this potential. the hang is in there, but now that the mailnews xul is fixed, it might not be reproducable.
Summary: hang in type ahead find → potential hang in type ahead find
Keywords: hang
I'm hanging in a different place, when it's trying to release a docshell. _PR_MD_ATOMIC_DECREMENT(int * 0x0549df70) line 798 PR_AtomicDecrement(int * 0x0549df70) line 307 + 9 bytes nsDocShell::Release(nsDocShell * const 0x0549df28) line 288 + 69 bytes nsWebShell::Release(nsWebShell * const 0x0549df28) line 266 + 12 bytes nsCOMPtr<nsIDocShellTreeNode>::~nsCOMPtr<nsIDocShellTreeNode>() line 498 nsDocShellForwardsEnumerator::BuildArrayRecursive(nsIDocShellTreeItem * 0x0549df2c, nsVoidArray & {...}) line 174 + 15 bytes nsDocShellEnumerator::BuildDocShellArray(nsVoidArray & {...}) line 143 nsDocShellEnumerator::EnsureDocShellArray() line 123 + 15 bytes nsDocShellEnumerator::First() line 114 nsDocShell::GetDocShellEnumerator(nsDocShell * const 0x0549df28, int 1, int 0, nsISimpleEnumerator * * 0x00129968) line 1492 + 8 bytes nsTypeAheadFind::FindItNow(nsIPresShell * 0x00000000, int 0, int 1, int 1) line 1349 + 63 bytes nsTypeAheadFind::HandleChar(unsigned short 119) line 909 + 45 bytes
Target Milestone: --- → M1
Don't mind my last comment, please. I'm getting to the bottom of it now.
Target Milestone: M1 → ---
Attachment #116156 - Flags: superreview?(sspitzer)
Attachment #116156 - Flags: review?(caillon)
Comment on attachment 116156 [details] [diff] [review] Fix infinite loop that occured when there were no docshells of type content, which can happen even when there is an html document what will happen on NS_ERROR_FAILURE? what would the user see? can you do the sr request after you have r=?
Attachment #116156 - Flags: superreview?(sspitzer)
On NS_ERROR_FAILURE, there is nothing found. It acts as if the find failed.
Attachment #116156 - Flags: review?(caillon) → review+
Attachment #116156 - Flags: superreview?(sspitzer)
Comment on attachment 116156 [details] [diff] [review] Fix infinite loop that occured when there were no docshells of type content, which can happen even when there is an html document sr=sspitzer thanks for following up on this.
Attachment #116156 - Flags: superreview?(sspitzer) → superreview+
checked in
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
rs vrfy.
Status: RESOLVED → VERIFIED
Product: Core → SeaMonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: