Eudora crash [@ nsEudoraMailbox::FillMailBuffer(ReadFileState*, SimpleBufferTonyRCopiedOnce&)] on import



MailNews Core
9 years ago
2 years ago


(Reporter: wsmwk, Unassigned)



1.9.1 Branch
Windows Vista

Firefox Tracking Flags

(Not tracked)


(Whiteboard: [gs], crash signature, URL)



9 years ago
0  	thunderbird.exe  	nsEudoraMailbox::FillMailBuffer  	nsEudoraMailbox.cpp:1361
1 	thunderbird.exe 	nsEudoraMailbox::ReadNextMessage 	nsEudoraMailbox.cpp:829
2 	thunderbird.exe 	nsEudoraMailbox::ImportMailbox 	nsEudoraMailbox.cpp:325
3 	thunderbird.exe 	ImportEudoraMailImpl::ImportMailbox 	nsEudoraImport.cpp:598
4 	thunderbird.exe 	ImportMailThread 	nsImportMail.cpp:917
5 	nspr4.dll 	_PR_NativeRunThread 	nsprpub/pr/src/threads/combined/pruthr.c:43

Comment 1

9 years ago
This actually isn't a crash in Eudora, but in the Eudora Classic importers in MailNews.
Assignee: mozilla-bugs → nobody
Component: General → Import
Product: Penelope → MailNews Core
QA Contact: general → import

Comment 2

9 years ago
3.0b2 topcrash, so requesting blocking

0	eudora.exe	nsEudoraMailbox::FillMailBuffer	 nsEudoraMailbox.cpp:1372
1	eudora.exe	nsEudoraMailbox::ReadNextMessage	nsEudoraMailbox.cpp:840
2	eudora.exe	nsEudoraMailbox::ImportMailbox	nsEudoraMailbox.cpp:336
3	eudora.exe	ImportEudoraMailImpl::ImportMailbox	nsEudoraImport.cpp:640
4	eudora.exe	ImportMailThread	nsImportMail.cpp:1107
5	nspr4.dll	_PR_NativeRunThread	nsprpub/pr/src/threads/combined/pruthr.c:436
6	nspr4.dll	pr_root	nsprpub/pr/src/md/windows/w95thred.c:122
Flags: blocking-thunderbird3?
Keywords: topcrash
Summary: Eudora crash [@ nsEudoraMailbox::FillMailBuffer] on import → Eudora crash [@ nsEudoraMailbox::FillMailBuffer(ReadFileState*, SimpleBufferTonyRCopiedOnce&)] on import

Comment 3

9 years ago
Those line numbers seem off, there isn't/wasn't any line 1372

I'd guess pState->pInputStream is null...
Jeff, can you take a look at this one?
Assignee: nobody → beckley
Flags: blocking-thunderbird3? → blocking-thunderbird3+


9 years ago
Whiteboard: [no l10n impact]

Comment 5

9 years ago
From previous code that calls this, I don't think pState->pInputStream could ever be NULL if it gets here.  Memory corruption then?  That's hard to track down. Wayne, is there a repeatable case for this?

Comment 6

9 years ago
20090108100404 is the earliest crash, eg bp-c7a4cc9c-590f-427d-87e5-72aa62090323
crash rate is about 60/month

Sorry, I don't have steps. just crash comments
bp-fad4022d-7002-4bcc-a8a1-198d32090407 Just trying to do a fressh install followed by an import of everything again.
bp-96e18477-f3fc-4083-b237-532272090511 Importing Email 
bp-dc52d361-0de2-4182-aff5-8ac292090628 trying to import from eudora 7.1
bp-b3f1ee73-4bac-408d-98d5-8224c2090729 was trying to import my EUDORA MAIL files (which had been run through Eudora Rescue) into Thunderbird. It was only the .MBX files. The app crashed immediately (<1 sec).

this still a topcrash for 3.0b2, but not for 3.0b3 (because there is not yet a eudora released on it I assume)
Target Milestone: --- → Thunderbird 3.0rc1

Comment 7

9 years ago
Jeff, do you know if this bug is still around? We're getting close to TB 3.0 rc 1...

Comment 8

9 years ago
There's only two crash reports with it on TB3b4.  Quite a few for TB3b3/E8b7, though.  I don't know if that means that it's mainly gone away in the latest builds, or just not enough people have the latest builds (e.g. E8b8 which is based on TB3b4 has not been released yet).  I don't think anyone (including us) has worked on the Eudora mail importers lately, so I would think that the bug is still around.
Unless this comes back into topcrash range, we wouldn't hold for this.
Flags: blocking-thunderbird3+ → blocking-thunderbird3-

Comment 10

9 years ago
Absent eudora data based on 3.0b4, I'd guess this won't remain in the top 10. The landscape has substantially changed between 3.0b3 and b4 - many other crashes signatures moved into the top ranks at rates. so changing to topcrash-
Flags: blocking-thunderbird3-
Keywords: topcrash → topcrash-
Version: unspecified → 1.9.1 Branch

Comment 11

8 years ago
I'm having the same problem but under WinXP, trying to import mailboxes I converted with EudoraRescue.

Comment 12

8 years ago
Add-ons: {972ce4c6-7e08-4474-a285-3208198ce6fd}:3.0.3
BuildID: 20100227143138
CrashTime: 1268559322
InstallTime: 1268550484
ProductName: Thunderbird
SecondsSinceLastCrash: 798
StartupTime: 1268558538
Theme: classic/1.0
Throttleable: 1
Version: 3.0.3

This report also contains technical information about the state of the application when it crashed.


8 years ago
Duplicate of this bug: 536805

Comment 14

8 years ago
Making this the primary bug as it has the most history.  Here's the comment from bug 536805 comment 4 that gives details and a repeatable case:

> Looks like this happens if you have two AB entries in Eudora that each point to
> each other (A contains B and B contains A).  It causes an infinite recursion
> trying to resolve the entries.  Thunderbird doesn't support an AB list
> containing another AB list (which Classic Eudora does support), and so the
> import code has to flatten out those cases.
> The fix is non-trivial because the recursion can happen at many levels, e.g. A
> contains B, B contains C, C contains A.  The code is probably going to need to
> be modified to keep a list of which AB lists have already been traversed.

Comment 15

8 years ago
Bug 536805 is NOT a duplicate of ths bug.  Lee just attached his crash report (for
the address book importing bug in 536805) to this mailbox import bug.  Sorry
for the bugspam.
Assignee: beckley → nobody

Comment 16

8 years ago
My apologies since this may all be moot. I had followed the instructions about migrating from Eudora to Thunderbird. It *seems* that this applied to TB 2 versions, which suggested the use of EudoraRescue. If I don't use EudoraRescue, TB 3 imports the original Eudora files successfully.


7 years ago
Crash Signature: [@ nsEudoraMailbox::FillMailBuffer(ReadFileState*, SimpleBufferTonyRCopiedOnce&)]

Comment 17

5 years ago
The topcrash- keyword is not actively maintained and pollutes queries with topcrash.
Keywords: topcrash-

Comment 18

4 years ago
reporter of can reproduce

0	xul.dll	nsEudoraMailbox::FillMailBuffer(ReadFileState *,SimpleBufferTonyRCopiedOnce &)	mailnews/import/eudora/src/nsEudoraMailbox.cpp
1	xul.dll	nsEudoraMailbox::ReadNextMessage(ReadFileState *,SimpleBufferTonyRCopiedOnce &,SimpleBufferTonyRCopiedOnce &,SimpleBufferTonyRCopiedOnce &,nsCString &,nsCString &,EudoraTOCEntry *)	mailnews/import/eudora/src/nsEudoraMailbox.cpp
2	xul.dll	nsEudoraMailbox::ImportMailbox(unsigned int *,bool *,wchar_t const *,nsIFile *,nsIMsgFolder *,int *)	mailnews/import/eudora/src/nsEudoraMailbox.cpp
3	xul.dll	ImportEudoraMailImpl::ImportMailbox(nsIImportMailboxDescriptor *,nsIMsgFolder *,wchar_t * *,wchar_t * *,bool *)	mailnews/import/eudora/src/nsEudoraImport.cpp
4	xul.dll	ImportMailThread	mailnews/import/src/nsImportMail.cpp 

hiikezoe@11446 1335nsresult nsEudoraMailbox::FillMailBuffer(ReadFileState *pState, SimpleBufferTonyRCopiedOnce& read)
hg@0 1336 {
hg@0 1337 if (read.m_writeOffset >= read.m_bytesInBuf) {
hg@0 1338 read.m_writeOffset = 0;
hg@0 1339 read.m_bytesInBuf = 0;
hg@0 1340 }
hg@0 1341 else if (read.m_writeOffset) {
hiikezoe@11446 1342 memcpy(read.m_pBuffer, read.m_pBuffer + read.m_writeOffset, read.m_bytesInBuf - read.m_writeOffset);
hg@0 1343 read.m_bytesInBuf -= read.m_writeOffset;
hg@0 1344 read.m_writeOffset = 0;
hg@0 1345 }
hg@0 1346
ehsan@13324 1347 uint32_t count = read.m_size - read.m_bytesInBuf;
timeless@6632 1348 if ((count + pState->offset) > pState->size)
hg@0 1349 count = pState->size - pState->offset;
hg@0 1350 if (count) {
ehsan@13324 1351 uint32_t bytesRead = 0;
hg@0 1352 char * pBuffer = read.m_pBuffer + read.m_bytesInBuf;
hg@0 1353 nsresult rv = pState->pInputStream->Read(pBuffer, count, &bytesRead);
Whiteboard: [no l10n impact] → [gs]
Target Milestone: Thunderbird 3.0rc1 → ---

Comment 19

4 years ago

"I was looking through the source code (mailnews/import/eudora/src/nsEudoraMailbox.cpp) and I found a couple of items that didn't seem quite right:

Line 963:
Old: while (((*pChar == ' ') || (*pChar == '\t')) && (len < maxLen)) {
New: while ((len < maxLen) && ((*pChar == ' ') || (*pChar == '\t'))) {
to short circuit the evaluation of *pChar when len >=maxLen.

Line 978:
Old: if (len >= lineLen)
New: if (len == lineLen)
since len can never be greater than lineLen at this point. This is similar to line 967.

Line 1003:
Old: while (((*pChar == ' ') || (*pChar == '\t')) && (len < lineLen)) {
New: while ((len < lineLen) && ((*pChar == ' ') || (*pChar == '\t'))) {
See line 963.

I'm not sure any of this will solve the problem, but you may want to do it anyway."

Comment 20

4 years ago
m_kato, does comment 19 sound sensible?

bp-c99c8833-af3e-48bc-98dc-7bbb42141121 is an example.
different signature bp-31f3f642-67d4-4c6c-88e0-3b18b2150101
Flags: needinfo?(m_kato)
(In reply to Wayne Mery (:wsmwk) from comment #20)
> m_kato, does comment 19 sound sensible?
> bp-c99c8833-af3e-48bc-98dc-7bbb42141121 is an example.
> different signature bp-31f3f642-67d4-4c6c-88e0-3b18b2150101

Not, this issue.  This crash issue depends on mailbox file of Eudora.

I think that root cause may be that...

1. ImportMailboxUsingTOC() in ImportMailbox() returns any error.
2. ImportMailbox() will call ReadNextMessage() with state.pInputStream is null.

Then, crash...

I don't know eudora mailbox format, so I don't know whether this mailbox is valid.
Flags: needinfo?(m_kato)


3 years ago
Crash Signature: [@ nsEudoraMailbox::FillMailBuffer(ReadFileState*, SimpleBufferTonyRCopiedOnce&)] → [@ nsEudoraMailbox::FillMailBuffer(ReadFileState*, SimpleBufferTonyRCopiedOnce&)] [@ nsEudoraMailbox::FillMailBuffer]

Comment 22

2 years ago
Importing from Eudora was removed from Thunderbird in bug 1243498.
Please see on how you can still import from Eudora if you need that.
Last Resolved: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.