Closed Bug 123677 Opened 23 years ago Closed 22 years ago

Crash in [@morkNode::CutWeakRef] trying to access mcom.beta.feedback.browser

Categories

(MailNews Core :: Networking: NNTP, defect)

x86
Windows 2000
defect
Not set
critical

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 105497
mozilla1.2alpha

People

(Reporter: stephend, Assigned: Bienvenu)

References

()

Details

(Keywords: crash)

Crash Data

Build ID: 2002-02-04-09, Windows 2000.

Summary: Crash in [morkNode::CutWeakRef] trying to access mcom.beta.feedback.browser

Steps to Reproduce: While trying to reproduce bug 87164 (progress intermittent
downloading large numbers of headers), I crashed consistently on startup trying
to access this newsgroup.

1.  Add news://news.netscape.com/mcom.beta.feedback.browser
2.  I crashed around 100,000+ headers, total for this group currently is 102,280.
3.  Upon relaunch, I tried to access this newsgroup again and get this crash:


Stack Signature  0x002f02e1 7dfb697a
Trigger Time 2002-02-05 14:53:23
Email Address stephend@netscape.com
URL visited news://news.netscape.com/mcom.beta.feedback.browser
User Comments Crash on startup, accessing the 'mcom.beta.feedback.browser'
newsgroup on news.netscape.com
Build ID 2002020411
Product ID MozillaTrunk
Platform
Operating System Win32
Module
Trigger Reason Privileged instruction
Stack Trace
0x002f02e1
morkNode::CutWeakRef [d:\builds\seamonkey\mozilla\db\mork\src\morkNode.cpp, line
649]
morkNode::SlotWeakNode [d:\builds\seamonkey\mozilla\db\mork\src\morkNode.cpp,
line 506]
morkTable::CloseTable [d:\builds\seamonkey\mozilla\db\mork\src\morkTable.cpp,
line 200]
morkTable::CloseMorkNode [d:\builds\seamonkey\mozilla\db\mork\src\morkTable.cpp,
line 107]
morkTable::~morkTable [d:\builds\seamonkey\mozilla\db\mork\src\morkTable.cpp,
line 115]
morkTable::`scalar deleting destructor'
morkObject::Release [d:\builds\seamonkey\mozilla\db\mork\src\morkObject.cpp,
line 68]
morkEnv::Release [d:\builds\seamonkey\mozilla\db\mork\src\morkEnv.cpp, line 202]
morkTable::CutStrongRef [d:\builds\seamonkey\mozilla\db\mork\src\morkTable.cpp,
line 1003]
morkBeadMap::CutAllBeads [d:\builds\seamonkey\mozilla\db\mork\src\morkBead.cpp,
line 256]
morkBeadMap::CloseBeadMap [d:\builds\seamonkey\mozilla\db\mork\src\morkBead.cpp,
line 172]
morkBeadMap::CloseMorkNode
[d:\builds\seamonkey\mozilla\db\mork\src\morkBead.cpp, line 144]
morkRowSpace::CloseRowSpace
[d:\builds\seamonkey\mozilla\db\mork\src\morkRowSpace.cpp, line 171]
morkRowSpace::CloseMorkNode
[d:\builds\seamonkey\mozilla\db\mork\src\morkRowSpace.cpp, line 111]
morkNode::cut_use_count [d:\builds\seamonkey\mozilla\db\mork\src\morkNode.cpp,
line 573]
morkNode::CutStrongRef [d:\builds\seamonkey\mozilla\db\mork\src\morkNode.cpp,
line 590]
morkNode::SlotStrongNode [d:\builds\seamonkey\mozilla\db\mork\src\morkNode.cpp,
line 485]
morkPortTableCursor::ClosePortTableCursor
[d:\builds\seamonkey\mozilla\db\mork\src\morkPortTableCursor.cpp, line 160]
morkPortTableCursor::CloseMorkNode
[d:\builds\seamonkey\mozilla\db\mork\src\morkPortTableCursor.cpp, line 83]
morkPortTableCursor::~morkPortTableCursor
[d:\builds\seamonkey\mozilla\db\mork\src\morkPortTableCursor.cpp, line 91]
morkPortTableCursor::`scalar deleting destructor'
morkObject::Release [d:\builds\seamonkey\mozilla\db\mork\src\morkObject.cpp,
line 68]
morkEnv::Release [d:\builds\seamonkey\mozilla\db\mork\src\morkEnv.cpp, line 202]
morkPortTableCursor::Release
[d:\builds\seamonkey\mozilla\db\mork\src\morkPortTableCursor.cpp, line 131]
nsMsgDBThreadEnumerator::~nsMsgDBThreadEnumerator
[d:\builds\seamonkey\mozilla\mailnews\db\msgdb\src\nsMsgDatabase.cpp, line 2451]
nsMsgDBThreadEnumerator::`scalar deleting destructor'
nsMsgDBEnumerator::Release
[d:\builds\seamonkey\mozilla\mailnews\db\msgdb\src\nsMsgDatabase.cpp, line 2458]
nsCOMPtr_base::assign_with_AddRef
[d:\builds\seamonkey\mozilla\xpcom\glue\nsCOMPtr.cpp, line 74]
nsMsgThreadedDBView::InitThreadedView
[d:\builds\seamonkey\mozilla\mailnews\base\src\nsMsgThreadedDBView.cpp, line 169]
nsMsgThreadedDBView::InitThreadedView
[d:\builds\seamonkey\mozilla\mailnews\base\src\nsMsgThreadedDBView.cpp, line 169]
nsMsgThreadedDBView::Open
[d:\builds\seamonkey\mozilla\mailnews\base\src\nsMsgThreadedDBView.cpp, line 94]
XPTC_InvokeByIndex
[d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp,
line 106]
XPCWrappedNative::CallMethod
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2000]
XPC_WN_CallMethod
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp,
line 1267]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 834]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2803]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 850]
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 925]
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 3407]
nsJSContext::CallEventHandler
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 1019]
nsJSEventListener::HandleEvent
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 182]
nsEventListenerManager::HandleEventSubType
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1206]
nsEventListenerManager::HandleEvent
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1809]
nsXULElement::HandleDOMEvent
[d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3383]
nsOutlinerSelection::FireOnSelectHandler
[d:\builds\seamonkey\mozilla\layout\xul\base\src\outliner\src\nsOutlinerSelection.cpp,
line 738]
nsOutlinerSelection::Select
[d:\builds\seamonkey\mozilla\layout\xul\base\src\outliner\src\nsOutlinerSelection.cpp,
line 369]
XPTC_InvokeByIndex
[d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp,
line 106]
XPCWrappedNative::CallMethod
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2000]
XPC_WN_CallMethod
[d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp,
line 1267]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 834]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2803]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 850]
js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 925]
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 3407]
nsJSContext::CallEventHandler
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 1019]
nsJSEventListener::HandleEvent
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSEventListener.cpp, line 182]
nsXBLPrototypeHandler::ExecuteHandler
[d:\builds\seamonkey\mozilla\content\xbl\src\nsXBLPrototypeHandler.cpp, line 442]
DoMouse
[d:\builds\seamonkey\mozilla\content\xbl\src\nsXBLMouseMotionHandler.cpp, line 103]
nsXBLMouseHandler::MouseDown
[d:\builds\seamonkey\mozilla\content\xbl\src\nsXBLMouseHandler.cpp, line 124]
nsEventListenerManager::HandleEvent
[d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line
1295]
nsXULElement::HandleDOMEvent
[d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3383]
PresShell::HandleEventInternal
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5993]
PresShell::HandleEvent
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5911]
Looks like a database issue to me.

Stephend, is it *always* reproducible - and does it always happen when you're
around 100,000 headers downloaded?
This has happened to me the last 3 times I tried it.
Giving this an nsbeta1- because of the 100,000 messages.  If you can reproduce
this with 10,000 or left, please renominate.
Status: NEW → ASSIGNED
Keywords: nsbeta1nsbeta1-
Target Milestone: --- → mozilla1.2
taking.
Assignee: sspitzer → bienvenu
Status: ASSIGNED → NEW
OK, I believe this has to do with having more than 64K different threads in a
folder/newsgroup - this overflows mork's internal weak reference scheme. This in
and of itself isn't neccesarily a problem since mork catches this, but I suspect
it causes a problem down the road when we're releasing all the refs. I'll look
into this a little, since it would be a drag if we had a built-in limitation
like this.

I also found that loading this newsgroup is very slow because there's one giant
thread in it, with thousands of messages. Giant threads cause us to slow down
quite a bit as we verify that the threading is correct. There are two ways to
speed this up; one is to make the header cache bigger while loading a newsgroup
(right now we blow away the header cache quite frequently loading this
newsgroup). The other thing we could do is when we get the newsgroup hdr from
the server, check if the hdr has a message-id we've seen before, and if not,
then we know we don't have to redo any of the threading by message-id for that
header. But that could involve calling a private mork interface to see if that
message-id had been atomized already.
*** Bug 147132 has been marked as a duplicate of this bug. ***
Summary: Crash in [morkNode::CutWeakRef] trying to access mcom.beta.feedback.browser → Crash in [@morkNode::CutWeakRef] trying to access mcom.beta.feedback.browser
Just reproduced this crash in a 6/24 nightly branch build.
I'm workin on a fix for this. Basically, rows don't need to ref-cnt the store.
Tables probably don't either.
Status: NEW → ASSIGNED
Depends on: 105497
I believe this is a straight DUP of bug 105497, but I'll test this anyway.  

news://news.netscape.com/mcom.beta.feedback.browser no longer has a large number
of messages to easily test this, I'll poke around for some large ones.
Stephen, yes, it's a straight dup.

*** This bug has been marked as a duplicate of 105497 ***
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
verified, I thought so, based on the stack and comments.

Thanks.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
Crash Signature: [@morkNode::CutWeakRef]
You need to log in before you can comment on or make changes to this bug.