Open Bug 127309 Opened 23 years ago Updated 2 years ago

nsMsgThread::GetFirstUnreadChild code path returns NS_OK and *result=0

Categories

(MailNews Core :: Database, defect)

defect

Tracking

(Not tracked)

People

(Reporter: timeless, Unassigned)

References

(Blocks 1 open bug)

Details

the result is:
###!!! ASSERTION: couldn't get header for some reason: 'NS_SUCCEEDED(rv) && msgHdr', file /home/timeless/mozilla/mailnews/base/src/nsMsgThreadedDBView.cpp, line 391

File: nsMsgThread.cpp   Status: Up-to-date   Working revision:    1.59
at the end of  nsMsgThread::GetFirstUnreadChild
(gdb) p numChildren
$24 = 8
(gdb) p rv
$25 = 0
(gdb) p *result
$26 = (nsIMsgDBHdr *) 0x0
(gdb) p *this
$27 = {<nsIMsgThread> = {<nsISupports> = {_vptr$ = 0x2acaabc0}, <No data fields>}, mRefCnt = 3, _mOwningThread = 0x80b7380,
  m_mdbDB = 0x87be300, m_threadKey = 21451, m_numChildren = 8, m_numUnreadChildren = 2, m_flags = 0, m_mdbTable = 0x88ada34,
  m_metaRow = 0x8acd16c, m_cachedValuesInitialized = 1, m_threadRootKey = 21451}

This happens most of the time when i run mozmail or select a folder.

Here's the best gdb output i can get [note that (void*)this has changed]

Breakpoint 3, nsMsgThread::GetFirstUnreadChild (this=0x8acd580, result=0xbfbf9650)
    at /home/timeless/mozilla/mailnews/db/msgdb/src/nsMsgThread.cpp:1056
1056            for (PRUint32 childIndex = 0; childIndex < numChildren; childIndex++)
6: this->m_numChildren = 1
5: this->m_numUnreadChildren = 1
1: rv = 3217004156
(gdb)
Continuing.

Breakpoint 5, nsMsgThread::GetFirstUnreadChild (this=0x8acd580, result=0xbfbf9650)
    at /home/timeless/mozilla/mailnews/db/msgdb/src/nsMsgThread.cpp:1066
1066          rv = m_mdbDB->IsRead(msgKey, &isRead);
6: this->m_numChildren = 1
5: this->m_numUnreadChildren = 1
2: child = {mRawPtr = 0x8a9a500}
1: rv = 0
(gdb)
Continuing.

Breakpoint 6, nsMsgKeySet::IsMember (this=0x89a2820, number=21464) at /home/timeless/mozilla/mailnews/base/util/nsMsgKeySet.cpp:669
669             return value;
4: value = 1
(gdb)
Continuing.

Breakpoint 2, nsMsgThread::GetFirstUnreadChild (this=0x8acd580, result=0xbfbf9650)
    at /home/timeless/mozilla/mailnews/db/msgdb/src/nsMsgThread.cpp:1076
1076            return rv;
6: this->m_numChildren = 1

5: this->m_numUnreadChildren = 1
1: rv = 0
(gdb)
Continuing.
###!!! ASSERTION: couldn't get header for some reason: 'NS_SUCCEEDED(rv) && msgHdr', file /home/timeless/mozilla/mailnews/base/src/nsMsgThreadedDBView.cpp, line 391
###!!! Break: at file /home/timeless/mozilla/mailnews/base/src/nsMsgThreadedDBView.cpp, line 391
nothing to do with mscott as far as I can tell.
Assignee: mscott → bienvenu
is this still happening with today's trunk build?
the code path still exists.

i've been rif'd so i no longer have access to all of those fun freebsd/qnx 
boxes. my audrey will arive eventually so i will still have an interest in QNX, 
but I don't have the profile and this fun stuff was on that freebsd box.

Why don't we change the code path so that it won't return *result=0 & NS_OK at 
the same time?
Blocks: 236849
Product: MailNews → Core
QA Contact: esther → database
Product: Core → MailNews Core
Assignee: dbienvenu → nobody
hmm, is it likely this code still exists in this form?
Flags: needinfo?(Pidgeot18)
Very likely that it exists in the form. Whether or not it's actually still an issue is another question.
Flags: needinfo?(Pidgeot18)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.