Mailmate crashes while importing IMAP
Reported by jesper (at noehr) | October 15th, 2014 @ 06:45 PM
Hi,
I'm trying to get started with MailMate, and during the process of seemingly importing my entire IMAP history, it routinely crashes. I restart the application to fetch a little bit more, but anywhere from 2 to 10 minutes in, it crashes.
Granted, I do have a large email account, with about 90.000 unread messages (don't ask), and many more than that archived. But, I don't think that's a good reason for why this shouldn't work.
I opted in for sending crash reports, so you should already have some information logged on your end. I'm on Yosemite, but have tried using MailMate previously, running in to the same problem.
Please advise.
Comments and changes to this ticket
-
benny October 15th, 2014 @ 06:52 PM
MailMate is still a 32 bit application and therefore it can actually run out of address space. It shouldn't happen for 90K messages though. Do you have any extremely large messages in the account?
Ah, you write 'many more than that'. Do you have an estimate of the total number of messages?
It is possible to take individual mailboxes offline if you want to see if you can track down the problem to a particular mailbox or message. You can also unsubscribe mailboxes if there are some you do not need (“File ▸ Edit IMAP Account ▸ ...” and then “Subscriptions...”).
-
jesper (at noehr) October 15th, 2014 @ 06:55 PM
I don't have an estimate of the number of messages, but I can see that it's a total of about 12GB. I would guess the number of messages is in the range of 3-400k. I don't think there are any extremely large messages in there, either.
-
jesper (at noehr) October 15th, 2014 @ 07:01 PM
Here's the crash report:
Process: MailMate [3513] Path: /Applications/MailMate.app/Contents/MacOS/MailMate Identifier: com.freron.MailMate Version: 1.8 (4576) Code Type: X86 (Native) Parent Process: ??? [1] Responsible: MailMate [3513] User ID: 501 Date/Time: 2014-10-15 11:56:28.429 -0700 OS Version: Mac OS X 10.10 (14A386b) Report Version: 11 Anonymous UUID: A60E879F-5AAD-E44A-4A64-A4D27CC76695 Sleep/Wake UUID: 8E4D6CE6-EA39-4618-B734-A213816C7C1C Time Awake Since Boot: 68000 seconds Time Since Wake: 17000 seconds Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Application Specific Information: abort() called Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x92a7a69e __pthread_kill + 10 1 libsystem_pthread.dylib 0x97071fd5 pthread_kill + 101 2 libsystem_c.dylib 0x91130efe abort + 156 3 OakUtilities.dylib 0x00829d2b file_mmap_t::file_mmap_t(std::string const&) + 347 4 OakDatabase.dylib 0x0035d81b database_header_oracle_t::load() + 537 5 OakDatabase.dylib 0x0035cbc2 database_header_oracle_t::database_header_oracle_t(std::string const&, std::string const&, changes_callback_info_t const&, bool) + 1288 6 OakDatabase.dylib 0x0035c6b4 database_header_oracle_t::database_header_oracle_t(std::string const&, std::string const&, changes_callback_info_t const&, bool) + 46 7 OakDatabase.dylib 0x003d3919 oracle_manager_t::oracle_for_field_path(std::vector<std::string, std::allocator<std::string> > const&, bool) + 937 8 OakDatabase.dylib 0x003d351a oracle_manager_t::oracle_for_header_string(std::string const&) + 70 9 OakDatabase.dylib 0x00345373 database_t::add_body_part(body_part_t&, database::add_options_t, bool, int) + 3303 10 OakDatabase.dylib 0x00341a17 database_t::add_message(std::tr1::shared_ptr<body_part_t>, database::add_options_t) + 1857 11 OakDatabase.dylib 0x0039727b imap_account_t::handle_data(std::tr1::shared_ptr<connection_result_t>) + 22283 12 OakProtocols.dylib 0x00740ef1 connection_command_t::handle_reply(connection_command_t::result_t const&) + 309 13 OakProtocols.dylib 0x00742186 oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>::master_run() + 124 14 OakProtocols.dylib 0x0074107f cf::member_callback_t<oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t> >::member_callback_t(void (oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>::*)(), oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>*)::helper_t::wake_up(void*) + 33 15 com.apple.CoreFoundation 0x96715d1f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 16 com.apple.CoreFoundation 0x9670787e __CFRunLoopDoSources0 + 462 17 com.apple.CoreFoundation 0x96706ce2 __CFRunLoopRun + 994 18 com.apple.CoreFoundation 0x96706696 CFRunLoopRunSpecific + 390 19 com.apple.CoreFoundation 0x967064fb CFRunLoopRunInMode + 123 20 com.apple.HIToolbox 0x904cf178 RunCurrentEventLoopInMode + 262 21 com.apple.HIToolbox 0x904ceeb1 ReceiveNextEventCommon + 494 22 com.apple.HIToolbox 0x904cecac _BlockUntilNextEventMatchingListInModeWithFilter + 99 23 com.apple.AppKit 0x94477f59 _DPSNextEvent + 734 24 com.apple.AppKit 0x944777a1 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 186 25 com.apple.AppKit 0x94469f6c -[NSApplication run] + 907 26 com.apple.AppKit 0x944534d0 NSApplicationMain + 2082 27 com.freron.MailMate 0x00020b2f main + 677 28 com.freron.MailMate 0x00003725 start + 53 Thread 1:: Dispatch queue: com.apple.libdispatch-manager 0 libsystem_kernel.dylib 0x92a7b8d2 kevent64 + 10 1 libdispatch.dylib 0x93a6873f _dispatch_mgr_invoke + 245 2 libdispatch.dylib 0x93a683a2 _dispatch_mgr_thread + 52 Thread 2:: main::signal_handler 0 libsystem_kernel.dylib 0x92a7ac3a __sigwait + 10 1 libsystem_pthread.dylib 0x9707426a sigwait$UNIX2003 + 71 2 com.freron.MailMate 0x0002083b signal_handler_thread(void*) + 63 3 libsystem_pthread.dylib 0x9706fecf _pthread_body + 138 4 libsystem_pthread.dylib 0x9706fe45 _pthread_start + 162 5 libsystem_pthread.dylib 0x9706df0e thread_start + 34 Thread 3:: IMAP connection 0 libsystem_platform.dylib 0x9652ae83 _os_lock_spin_lock + 21 1 libsystem_malloc.dylib 0x99e87fc6 szone_free_definite_size + 495 2 libsystem_malloc.dylib 0x99e86e3a free + 301 3 regexp.dylib 0x00a21b58 onig_region_free + 51 4 regexp.dylib 0x00a11e3d regexp::search(regexp::pattern_t const&, char const*, char const*, char const*, char const*, unsigned int)::helper_t::region_free(re_registers*) + 25 5 regexp.dylib 0x00a120c0 std::tr1::_Sp_counted_base_impl<re_registers*, void (*)(re_registers*), (__gnu_cxx::_Lock_policy)2>::_M_dispose() + 18 6 com.freron.MailMate 0x000255b7 std::tr1::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() + 39 7 regexp.dylib 0x00a11d0b regexp::search(regexp::pattern_t const&, char const*, char const*, char const*, char const*, unsigned int) + 187 8 com.freron.MailMate.OakMIME 0x00691120 char const* parse_headers_func<std::multimap<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > >(char const*, char const*, std::multimap<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >&, mime_errors_handler_t&, std::string const&, std::string const&) + 1684 9 com.freron.MailMate.OakMIME 0x0063c02f body_part_t::init(char const*, char const*) + 717 10 com.freron.MailMate.OakMIME 0x0063bd33 body_part_t::init(std::vector<char, std::allocator<char> >&) + 159 11 com.freron.MailMate.OakMIME 0x00671f61 copy_body_part(std::vector<char, std::allocator<char> >&) + 549 12 com.freron.MailMate.OakMIME 0x00672017 create_body_part(std::vector<char, std::allocator<char> >&, bool) + 106 13 OakProtocols.dylib 0x0075ea5c imap_t::parse_fetch_response(int) + 4772 14 OakProtocols.dylib 0x007534a6 imap_t::parse_tagged_response(std::string const&) + 438 15 OakProtocols.dylib 0x00753121 imap_t::read_and_parse_responses(std::string const&, bool) + 471 16 OakProtocols.dylib 0x00751c79 imap_t::write_command_and_read_responses(std::string const&, ...) + 91 17 OakProtocols.dylib 0x00748b0d imap_t::fetch_messages() + 2405 18 OakProtocols.dylib 0x007438d2 imap_t::run_action() + 336 19 OakProtocols.dylib 0x0073b916 connection_t::run() + 458 20 OakProtocols.dylib 0x00740c71 connection_command_t::handle_request(std::tr1::shared_ptr<connection_t>) + 197 21 OakProtocols.dylib 0x007423a1 oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>::server_run() + 289 22 OakProtocols.dylib 0x00741057 oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>::server_t(unsigned long)::runner_t::server(void*) + 17 23 libsystem_pthread.dylib 0x9706fecf _pthread_body + 138 24 libsystem_pthread.dylib 0x9706fe45 _pthread_start + 162 25 libsystem_pthread.dylib 0x9706df0e thread_start + 34 [chopped due to large body] VM Region Summary: ReadOnly portion of Libraries: Total=232.7M resident=80.1M(34%) swapped_out_or_unallocated=152.6M(66%) Writable regions: Total=2.4G written=2.3G(95%) resident=2.3G(96%) swapped_out=4K(0%) unallocated=95.0M(4%) REGION TYPE VIRTUAL =========== ======= CG backing stores 4420K CG image 136K CG shared images 208K CoreAnimation 32K CoreData 4K CoreServices 2296K CoreUI image data 100K Foundation 4K Image IO 92K JS garbage collector 320K Kernel Alloc Once 4K MALLOC 2.4G MALLOC (admin) 48K Memory Tag 242 12K OpenCL 16K SQLite page cache 384K Stack 71.7M VM_ALLOCATE 17.4M WebKit Malloc 744K __DATA 10.2M __IMAGE 528K __LINKEDIT 52.3M __OBJC 4656K __TEXT 180.3M __UNICODE 544K mapped file 868.1M shared memory 4K =========== ======= TOTAL 3.5G
As far as I can read, it does indeed crash in
mmap
. Would this be due to a very large message? -
benny October 15th, 2014 @ 07:03 PM
If MailMate manages to complete the synchronisation then I think it should be able to run without these crashes, but 3-400K is currently pushing it to its limit (it definitely wouldn't work well on my old hardware). I am of course aware of this, but I cannot promise you optimisations soon. I'm working on a 64 bit version and there is an experimental version available, but it uses even more memory than the 32 bit version does and therefore I cannot really recommend it. Nevertheless, here it is: http://updates.mailmate-app.com/archives/MailMate_yosemite_64bit.tbz
By the way, I do get your crash reports (25). Interestingly, they are the only ones I've received for the latest version of MailMate (~1200 users have updated so far).
-
benny October 15th, 2014 @ 07:05 PM
It could be a large message, but it could also just be the drop that spilled the cup (however that proverb is in English).
-
jesper (at noehr) October 15th, 2014 @ 07:07 PM
Feel free to switch to Danish, vi Danskere må jo støtte hinanden. :-)
-
jesper (at noehr) October 15th, 2014 @ 07:08 PM
Anyway, I'm running the 64-bit version you linked now, I'll let you know how it goes.
-
jesper (at noehr) October 15th, 2014 @ 07:41 PM
So far, so good. I wonder if running the 32 bit version after the initial import is done will work.
-
benny October 15th, 2014 @ 08:03 PM
That would quite likely work (depending on your total number of messages).
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
Mac OS X email client.