Closed
Bug 1358140
Opened 9 years ago
Closed 9 years ago
Infinite recursion then crash during compact of an IMAP folder
Categories
(MailNews Core :: Networking: IMAP, defect)
MailNews Core
Networking: IMAP
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 1158578
People
(Reporter: jhorak, Unassigned)
References
Details
(Keywords: crash)
Our user is reporting infinite recursion lockup and subsequent crash when he tries to compact IMAP4 folder.
I'm unable to reproduce by myself, but stack trace looks quite convincing:
https://bugzilla.redhat.com/attachment.cgi?id=1272674
-- snip --
#28 0x00007f77c1b4238d in nsOfflineStoreCompactState::CopyNextMessage(bool&) (this=this@entry=0x7f7768f32000, done=@0x7fffe7a18d93: false)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/base/src/nsMsgFolderCompactor.cpp:1037
#29 0x00007f77c1b425f2 in nsOfflineStoreCompactState::OnStopRequest(nsIRequest*, nsISupports*, nsresult) (this=0x7f7768f32000, request=<optimized out>, ctxt=<optimized out>, status=<optimized out>) at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/base/src/nsMsgFolderCompactor.cpp:1104
#30 0x00007f77c1e066d5 in mozilla::net::nsStreamListenerTee::OnStopRequest(nsIRequest*, nsISupports*, nsresult) (this=0x7f7781d1dbc0, request=0x7f7781d69090, context=0x7f77791465f8, status=-2141913056) at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/base/nsStreamListenerTee.cpp:51
#31 0x00007f77c1c47109 in nsImapMockChannel::ReadFromImapConnection() (this=this@entry=0x7f7781d69090)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapProtocol.cpp:9403
#32 0x00007f77c1c49112 in nsImapMockChannel::OnCacheEntryAvailable(nsICacheEntry*, bool, nsIApplicationCache*, nsresult) (this=0x7f7781d69090, entry=0x7f777913e700, aNew=<optimized out>, aAppCache=<optimized out>, status=<optimized out>)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapProtocol.cpp:9101
#33 0x00007f77c1f47f55 in mozilla::net::CacheEntry::InvokeAvailableCallback(mozilla::net::CacheEntry::Callback const&) (this=this@entry=0x7f7779127de0, aCallback=...) at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:890
#34 0x00007f77c1f483a1 in mozilla::net::CacheEntry::InvokeCallback(mozilla::net::CacheEntry::Callback&) (this=0x7f7779127de0, aCallback=...)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:812
#35 0x00007f77c1f46d96 in mozilla::net::CacheEntry::InvokeCallbacks(bool) (this=this@entry=0x7f7779127de0, aReadOnly=aReadOnly@entry=false)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:679
#36 0x00007f77c1f46f00 in mozilla::net::CacheEntry::InvokeCallbacks() (this=0x7f7779127de0)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:620
#37 0x00007f77c1f48b99 in mozilla::net::CacheEntry::Open(mozilla::net::CacheEntry::Callback&, bool, bool, bool) (this=this@entry=0x7f7779127de0, aCallback=..., aTruncate=aTruncate@entry=false, aPriority=aPriority@entry=false, aBypassIfBusy=aBypassIfBusy@entry=false)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:341
#38 0x00007f77c1f48ca3 in mozilla::net::CacheEntry::AsyncOpen(nsICacheEntryOpenCallback*, unsigned int) (this=0x7f7779127de0, aCallback=aCallback@entry=0x7f7781d69098, aFlags=aFlags@entry=0) at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheEntry.cpp:315
#39 0x00007f77c1f547b5 in mozilla::net::CacheStorage::AsyncOpenURI(nsIURI*, nsACString_internal const&, unsigned int, nsICacheEntryOpenCallback*) (this=0x7f77760ffe40, aURI=<optimized out>, aIdExtension=..., aFlags=0, aCallback=0x7f7781d69098)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mozilla/netwerk/cache2/CacheStorage.cpp:112
#40 0x00007f77c1c479cd in nsImapMockChannel::OpenCacheEntry() (this=this@entry=0x7f7781d69090)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapProtocol.cpp:9218
#41 0x00007f77c1c47dd1 in nsImapMockChannel::AsyncOpen(nsIStreamListener*, nsISupports*) (this=0x7f7781d69090, listener=<optimized out>, ctxt=0x7f77791465f8) at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapProtocol.cpp:9541
#42 0x00007f77c1c62beb in nsImapService::GetMessageFromUrl(nsIImapUrl*, int, nsIMsgFolder*, nsIImapMessageSink*, nsIMsgWindow*, nsISupports*, bool, nsIURI**) (this=this@entry=0x7f7785dff1a0, aImapUrl=<optimized out>, aImapAction=aImapAction@entry=268435510, aImapMailFolder=<optimized out>, aImapMessage=<optimized out>, aMsgWindow=aMsgWindow@entry=0x7f7794738c40, aDisplayConsumer=0x7f7768f32000, aConvertDataToText=false, aURL=0x7fffe7a19a88)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapService.cpp:1109
#43 0x00007f77c1c63325 in nsImapService::StreamMessage(char const*, nsISupports*, nsIMsgWindow*, nsIUrlListener*, bool, nsACString_internal const&, bool, nsIURI**) (this=0x7f7785dff1a0, aMessageURI=<optimized out>, aConsumer=0x7f7768f32000, aMsgWindow=0x7f7794738c40, aUrlListener=<optimized out>, aConvertData=<optimized out>, aAdditionalHeader=..., aLocalOnly=true, aURL=0x7fffe7a19a88)
at /usr/src/debug/thunderbird-52.0/thunderbird-52.0/mailnews/imap/src/nsImapService.cpp:1210
#44 0x00007f77c1b4238d in nsOfflineStoreCompactState::CopyNextMessage(bool&) (this=this@entry=0x7f7768f32000, done=@0x7fffe7a19af3: false)
-- snip --
Maybe just a wild guess, probably message db is damaged it thinks that message is available offline [1], but it isn't so the nsImapMockChannel::OnCacheEntryAvailable ends by calling ReadFromImapConnection (which fails because localOnly is set) and nsOfflineStoreCompactState::OnStopRequest obtains NS_MSG_ERROR_MSG_NOT_OFFLINE.
The major question is: should we really call CopyNextMessage() there [2]? I've got an impression that the processing all messages in folder are already done in nsOfflineStoreCompactState::CopyNextMessage in while loop.
Downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=1443646
[1] https://dxr.mozilla.org/comm-central/rev/5e4e889f13eb1fd5091f60921a1566c661f2c630/mailnews/imap/src/nsImapService.cpp#1199
[2] https://dxr.mozilla.org/comm-central/rev/5e4e889f13eb1fd5091f60921a1566c661f2c630/mailnews/base/src/nsMsgFolderCompactor.cpp#1129
| Reporter | ||
Comment 1•9 years ago
|
||
Seem like backtrace from bug 1158578 is very similar: https://bugzilla.mozilla.org/show_bug.cgi?id=1158578#c4
We also have very similar reports from some other users:
https://crash-stats.mozilla.com/report/index/65346c34-a8be-4c9c-839d-cc59a0170418
https://crash-stats.mozilla.com/report/index/40ba32d4-4f2e-4cec-8384-65a0a0170418
https://crash-stats.mozilla.com/report/index/accb1bc5-7cc6-49fd-8231-aec792170412
https://crash-stats.mozilla.com/report/index/58776046-1c95-48bc-a622-c7e002170412
| Reporter | ||
Comment 2•9 years ago
|
||
Reporter does have this problem only on Thunderbird 52, Thunderbird 45.8 is without this issue.
Comment 3•9 years ago
|
||
yes, bug 1158578 is where the action is
Severity: normal → critical
Status: NEW → RESOLVED
Closed: 9 years ago
Keywords: crash
Resolution: --- → DUPLICATE
Summary: Infinite recursion during compact of an IMAP folder → Infinite recursion then crash during compact of an IMAP folder
You need to log in
before you can comment on or make changes to this bug.
Description
•