Closed Bug 18345 Opened 26 years ago Closed 26 years ago

[CRASH] Browser crashes on startup if you have more than 100 bookmarks in the same menu

Categories

(Core :: XUL, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: kinmoz, Assigned: eric)

Details

The browser crashes on startup if you have more than 100 bookmarks in a bookmark submenu. I was able to reproduce this by migrating my existing 4.x profile which has alot of bookmarks. The browser will startup immediately after you do the migration, but if you quit the browser and restart it, it will crash in: nsBoxFrame::GetChildBoxInfo(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x028299a0, nsCalculatedBoxInfo & {...}) line 320 + 8 bytes nsBoxFrame::GetBoxInfo(nsBoxFrame * const 0x023e17d0, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 1496 + 44 bytes nsBoxFrame::GetChildBoxInfo(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x023e1798, nsCalculatedBoxInfo & {...}) line 332 nsBoxFrame::GetBoxInfo(nsBoxFrame * const 0x023dfcb8, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 1496 + 44 bytes nsBoxFrame::GetChildBoxInfo(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x023dfc80, nsCalculatedBoxInfo & {...}) line 332 nsBoxFrame::GetBoxInfo(nsBoxFrame * const 0x023de190, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 1496 + 44 bytes nsBoxFrame::GetChildBoxInfo(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x023de158, nsCalculatedBoxInfo & {...}) line 332 nsBoxFrame::GetBoxInfo(nsBoxFrame * const 0x023dc638, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 1496 + 44 bytes nsToolboxFrame::GetBoxInfo(nsToolboxFrame * const 0x023dc638, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 335 nsBoxFrame::GetChildBoxInfo(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x023dc600, nsCalculatedBoxInfo & {...}) line 332 nsBoxFrame::GetBoxInfo(nsBoxFrame * const 0x023c6290, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsBoxInfo & {...}) line 1496 + 44 bytes nsBoxFrame::Reflow(nsBoxFrame * const 0x023c6258, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 473 nsContainerFrame::ReflowChild(nsIFrame * 0x023c6258, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 405 + 31 bytes RootFrame::Reflow(RootFrame * const 0x027bb9b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 332 nsContainerFrame::ReflowChild(nsIFrame * 0x027bb9b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 405 + 31 bytes ViewportFrame::Reflow(ViewportFrame * const 0x027ba040, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 514 PresShell::InitialReflow(PresShell * const 0x020a6c40, int 12600, int 10395) line 997 nsXULDocument::StartLayout() line 3275 nsXULDocument::ResumeWalk() line 4556 nsXULDocument::OnUnicharStreamComplete(nsXULDocument * const 0x020617b4, nsIUnicharStreamLoader * 0x00000000, unsigned int 0, const unsigned short * 0x023b9fe8) line 4649 + 11 bytes nsUnicharStreamLoader::OnStopRequest(nsUnicharStreamLoader * const 0x02729a34, nsIChannel * 0x02729060, nsISupports * 0x00000000, unsigned int 0, const unsigned short * 0x00000000) line 122 + 50 bytes nsChannelListener::OnStopRequest(nsChannelListener * const 0x02729920, nsIChannel * 0x02729060, nsISupports * 0x00000000, unsigned int 0, const unsigned short * 0x00000000) line 1382 + 42 bytes nsFileChannel::OnStopRequest(nsFileChannel * const 0x02729064, nsIChannel * 0x027292d0, nsISupports * 0x00000000, unsigned int 0, const unsigned short * 0x00000000) line 427 + 45 bytes nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x0272a370) line 326 nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x0272a0d0) line 173 + 12 bytes PL_HandleEvent(PLEvent * 0x0272a0d0) line 537 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x010716c0) line 498 + 9 bytes _md_EventReceiverProc(HWND__ * 0x00ae0442, unsigned int 49318, unsigned int 0, long 17241792) line 972 + 9 bytes USER32! 77e71820() 010716c0() Spoke to evaughan@netscape.com, who is the author of the nsBoxFrame code, and he told me that there is a hard coded limit BoxInfo limit of 100. If you exceed this limit bad things happen.
Blocks: 18951
Summary: [CRASH][BLOCKER] Browser crashes on startup if you have more than 100 bookmarks in the same menu → [CRASH] Browser crashes on startup if you have more than 100 bookmarks in the same menu
removing [BLOCKER]from summary since it is now a severity level.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Reimplemented boxes data structure to be a linked list instead of a vector of 100. This is now fixed.
QA Contact: ckritzer → claudius
claudius, please check this out at your leisure
Status: RESOLVED → VERIFIED
I can verify that this is fixed because of bug 21477. marking VERIFIED fixed for 20000112 builds
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL. XUL component will be deleted.
Component: XUL → XP Toolkit/Widgets: XUL
No longer blocks: 18951
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: claudius → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.