Closed Bug 807878 Opened 12 years ago Closed 4 years ago

crash in nsMsgLocalMailFolder::RefreshSizeOnDisk

Categories

(MailNews Core :: Backend, defect)

x86
Windows NT
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: wsmwk, Unassigned)

References

Details

(Keywords: crash, regression, Whiteboard: [regression:TB12])

Crash Data

~top 100 crash
crash comments indicate during compact

This bug was filed from the Socorro interface and is 
report bp-20b772a3-f003-43d4-a0f1-1bbd22121009 
============================================================= 
0		@0xfffff9	
1	xul.dll	nsMsgLocalMailFolder::RefreshSizeOnDisk	mailnews/local/src/nsLocalMailFolder.cpp:1131
2	xul.dll	nsMsgLocalMailFolder::OnCopyCompleted	mailnews/local/src/nsLocalMailFolder.cpp:1357
3	xul.dll	nsMsgLocalMailFolder::EndMove	mailnews/local/src/nsLocalMailFolder.cpp:2539
4	xul.dll	nsCopyMessageStreamListener::EndCopy	mailnews/base/src/nsCopyMessageStreamListener.cpp:141
5	xul.dll	nsCopyMessageStreamListener::OnStopRequest	mailnews/base/src/nsCopyMessageStreamListener.cpp:150
6	xul.dll	nsMsgProtocol::OnStopRequest	mailnews/base/util/nsMsgProtocol.cpp:399
Component: General → Backend
Product: Thunderbird → MailNews Core
Crash Signature: [@ nsMsgLocalMailFolder::RefreshSizeOnDisk()] → [@ nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk()]
I don't have a solid theory of this crash. My guess though is that one of the observers has been released. My suspicion would be nsMsgSendLater because it adds a folder listener (which is rare, most code uses a session listener) and it does manual releases of itself.
Another regression of TB12 - lilke bug 818325.
But unclear whether without deeper checking if related to bug 402392 maildir and it's friends like bug 713958 and bug 715924

Note, there are multiple stacks. Two examples

bp-1a30fd5c-6ca6-4f11-a4ee-5f99a2140313 TB12.0.1

0 		@0x29732528	
1 	xul.dll	nsMsgLocalMailFolder::RefreshSizeOnDisk()	mailnews/local/src/nsLocalMailFolder.cpp
2 	xul.dll	nsMsgLocalMailFolder::NotifyCompactCompleted()	mailnews/local/src/nsLocalMailFolder.cpp
3 	xul.dll	nsFolderCompactState::Compact(nsIMsgFolder*, bool, nsIUrlListener*, nsIMsgWindow*)	mailnews/base/src/nsMsgFolderCompactor.cpp
4 	xul.dll	nsMsgBrkMBoxStore::CompactFolder(nsIMsgFolder*, nsIUrlListener*, nsIMsgWindow*)	mailnews/local/src/nsMsgBrkMBoxStore.cpp
5 	xul.dll	nsMsgLocalMailFolder::Compact(nsIUrlListener*, nsIMsgWindow*)	mailnews/local/src/nsLocalMailFolder.cpp 

bp-ebe5951e-fb22-4408-bdd6-087fe2140817 TB31
 0 		@0x4052c000	
1 	xul.dll	nsMsgLocalMailFolder::RefreshSizeOnDisk()	mailnews/local/src/nsLocalMailFolder.cpp
2 	xul.dll	nsMsgLocalMailFolder::UpdateFolder(nsIMsgWindow*)	mailnews/local/src/nsLocalMailFolder.cpp
3 	xul.dll	NS_InvokeByIndex	xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp
 
http://hg.mozilla.org/releases/comm-esr31/annotate/6219e5a9a8d8/mailnews/local/src/nsLocalMailFolder.cpp#l1108
ehsan@13324 1105 uint32_t oldFolderSize = mFolderSize;
hg@0 1106 mFolderSize = 0; // we set this to 0 to force it to get recalculated from disk
hg@0 1107 if (NS_SUCCEEDED(GetSizeOnDisk(&mFolderSize)))
hg@0 1108   NotifyIntPropertyChanged(kFolderSizeAtom, oldFolderSize, mFolderSize);
Blocks: 402392
Keywords: regression
Whiteboard: [regression:TB12]
Crash Signature: [@ nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk()] → [@ nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ nsMsgLocalMailFolder::RefreshSizeOnDisk] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk]
Status: NEW → RESOLVED
Crash Signature: [@ nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk()] [@ nsMsgLocalMailFolder::RefreshSizeOnDisk] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk] → [@ nsMsgLocalMailFolder::RefreshSizeOnDisk] [@ @0x0 | nsMsgLocalMailFolder::RefreshSizeOnDisk]
Closed: 4 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.