+++ This bug was initially created as a clone of Bug #1175055 +++ Importing from Eudora and Outlook is busted in TB 38 and trunk. In bug 1175055 the options were disabled. The problem needs to be fixed and the options need to be re-enabled again.
Created attachment 8712815 [details] [diff] [review] bug1176748_import.patch - main thread only Totally untested (except that it compiles and tb starts up). If it works, we could clean things up too, but ... who knows, maybe someone wants to fix it properly some day.
Created attachment 8712844 [details] [diff] [review] Part 2: Undo stuff from bug 1175055 so that the import becomes available again. BTW, this is based on the Eudora removal in bug 1243498. Patch won't apply unless you apply the patch from the other bug first.
Comment on attachment 8712815 [details] [diff] [review] bug1176748_import.patch - main thread only I hate to give this an f- but it crashes ;-( Hit MOZ_CRASH(nsMsgBrkMBoxStore not thread-safe) at c:/mozilla-source/comm-central/mailnews/local/src/nsMsgBrkMBoxStore.cpp:49 #01: NS_LogInit[xul +0x558720] #02: NS_LogInit[xul +0x6b6ad0] #03: NS_LogInit[xul +0x3d79e5] #04: NS_LogInit[xul +0x560ba3] #05: NSSBase64_EncodeItem[nss3 +0x290568] #06: NSSBase64_EncodeItem[nss3 +0x27d90f] #07: _get_flsindex[MSVCR120 +0x2c01d] #08: _get_flsindex[MSVCR120 +0x2c001] #09: BaseThreadInitThunk[kernel32 +0x4d0e9] #10: RtlInitializeExceptionChain[ntdll +0x419bb] #11: RtlInitializeExceptionChain[ntdll +0x4198e] https://dxr.mozilla.org/comm-central/source/mailnews/local/src/nsMsgBrkMBoxStore.cpp#49 Here's what I did: I compiled on Win 7 and copied over the dist/bin folder to the Vista box that has Outlook installed. There I removed the TB profile for a fresh start. The first panel that comes up is the migration/import panel. I said OK to Outlook and it crashed.
Created attachment 8713327 [details] [diff] [review] bug1176748_import.patch Would you mind testing this too? I had forgot to actually get rid of the new thread creation. (There seems to be one more related to outlook ab import, haven't touched that)
Comment on attachment 8713327 [details] [diff] [review] bug1176748_import.patch I don't mind testing it as long as you don't mind another f- ;-) Instead of crashing it now hangs. The last debug is this:  WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file c:/mozilla-source/comm-central/mailnews/base/src/nsMsgAccountManager.cpp, line 2316  WARNING: No valid default account found.: file c:/mozilla-source/comm-central/mailnews/base/src/nsMsgAccountManager.cpp, line 781  WARNING: Just using the first one (FIXME).: file c:/mozilla-source/comm-central/mailnews/base/src/nsMsgAccountManager.cpp, line 783 Yesterday the crash came right after these lines, now it hangs there. The Outlook inbox only has three messages, so that should be imported quickly. I finally killed it. It had managed to create "Outlook Import" in "Local Folder" and in there an Inbox and Inbox.msf. But the Inbox has 0 bytes so as far as I can see, nothing got imported.
Quoting from a private message from Joshua Cranmer: The issue in question is that the importer code all runs off-main-thread, and a great deal of interfaces and implementations are designed to be main-thread-only--and when they're used off-main-thread, a fatal assert fires and the whole things comes crashing down. The "usual" trick for this is proxying the relevant interfaces. The only reason that the import code tries to run off-main-thread appears to be so that the implementors can be lazy and do a giant synchronous run without bothering about returning control to the event loop. In practice, we'd have to proxy so much back to the main thread anyways; simply fixing the import code to process a single mail message at a time and then yielding back into the event loop (the best example code I can think of here is <https://dxr.mozilla.org/comm-central/source/mailnews/news/src/nsNNTPProtocol.cpp#2818-2883>) would achieve much the same effect with far less brittleness. It's probably possible to test this effect by ripping the proxies out and then figuring out where a more basic mail importer... but I don't think we actually have one of those :-(
No longer a topcrash