#332 new
Riot Nrrrd™

MailMate aborts during first run

Reported by Riot Nrrrd™ | January 25th, 2013 @ 10:37 PM

I just downloaded MailMate today and ran it for the first time.

It imported my 4 accounts from Apple's Mail.app and went off on its merry way filling in the index/header data for everything.

After about an hour or so it crashed via an abort(). I have 22,000+ e-mails in my home IMAP INBOX (dating back 20 years) so maybe that's why.

Looks like it crashed inside your OakDatabase library.

This is on a Mid-2010 Mac Pro 6-CPU 3.33GHz system running Mac OS 10.6.8. Crash dump follows ...

Process:         MailMate [54510]  
Path:            /Applications/MailMate.app/Contents/MacOS/MailMate  
Identifier:      com.freron.MailMate  
Version:         1.5.2 (3218)  
Code Type:       X86 (Native)  
Parent Process:  launchd [344]

Date/Time:       2013-01-25 14:32:06.913 -0800  
OS Version:      Mac OS X 10.6.8 (10K549)  
Report Version:  6

Interval Since Last Report:          1067613 sec  
Crashes Since Last Report:           1  
Per-App Interval Since Last Report:  3625 sec  
Per-App Crashes Since Last Report:   1  
Anonymous UUID:                      1F2141F2-4B35-4FA3-ABCB-FD0307BED42F

Exception Type:  EXC_CRASH (SIGABRT)  
Exception Codes: 0x0000000000000000, 0x0000000000000000  
Crashed Thread:  5  IMAP connection

Application Specific Information:  
abort() called

...

Thread 5 Crashed:  IMAP connection  
0   libSystem.B.dylib               0x90317f75 usleep$NOCANCEL$UNIX2003 + 0  
1   libSystem.B.dylib               0x903396f0 abort + 105  
2   libstdc++.6.dylib               0x967c4fda __gnu_cxx::__verbose_terminate_handler() + 433  
3   libstdc++.6.dylib               0x967c317a __cxxabiv1::__terminate(void (*)()) + 10  
4   libstdc++.6.dylib               0x967c31ba __cxxabiv1::__unexpected(void (*)()) + 0  
5   libstdc++.6.dylib               0x967c32b8 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) + 0  
6   libstdc++.6.dylib               0x967c3658 operator new(unsigned long) + 101  
7   OakDatabase.dylib               0x002c3913 std::vector<char, std::allocator<char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, char const&) + 137  
8   OakDatabase.dylib               0x002c3884 std::vector<char, std::allocator<char> >::push_back(char const&) + 62  
9   OakProtocols.dylib              0x0065e854 int connection_t::read<std::back_insert_iterator<std::vector<char, std::allocator<char> > > >(std::back_insert_iterator<std::vector<char, std::allocator<char> > >, bool, int) + 592  
10  OakProtocols.dylib              0x00659cb9 int connection_t::read_bytes<std::back_insert_iterator<std::vector<char, std::allocator<char> > > >(std::back_insert_iterator<std::vector<char, std::allocator<char> > >, int) + 101  
11  OakProtocols.dylib              0x0064daca imap_t::read_response() + 286  
12  OakProtocols.dylib              0x0064dbf9 imap_t::read_and_parse_responses(std::string const&) + 95  
13  OakProtocols.dylib              0x0064c9db imap_t::write_command_and_read_responses(std::string const&, ...) + 83  
14  OakProtocols.dylib              0x00645291 imap_t::fetch_messages() + 2845  
15  OakProtocols.dylib              0x00641177 imap_t::run_action() + 883  
16  OakProtocols.dylib              0x0063acf2 connection_t::run() + 314  
17  OakProtocols.dylib              0x0063e69b connection_command_t::handle_request(std::tr1::shared_ptr<connection_t>) + 187  
18  OakProtocols.dylib              0x0063fb46 oak::server_t<connection_command_t, std::tr1::shared_ptr<connection_t>, connection_command_t::result_t>::server_run() + 276  
19  OakProtocols.dylib              0x0063e8b5 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  
20  libSystem.B.dylib               0x9025d259 _pthread_start + 345  
21  libSystem.B.dylib               0x9025d0de thread_start + 34

Comments and changes to this ticket

  • benny

    benny January 25th, 2013 @ 10:59 PM

    22K messages is not a problem. The crash happens in the IMAP code fetching messages from the server. I am very interested if it's a reproducible problem. Is it?

    On restart MailMate should ask you if you want to send the crash report to me. This is the best way to provide them since then I can more easily see if multiple users have the same problem.

    And thanks for trying out MailMate.

  • Riot Nrrrd™

    Riot Nrrrd™ January 26th, 2013 @ 07:21 AM

    Unfortunately it appears to be repeatable ... just aborted on me again at the same place.

  • benny

    benny January 26th, 2013 @ 07:45 AM

    For me it's a good thing since it means the bug can be fixed if you are willing to help me track it down.

    If you are willing to help me then this is what I want you to do: Take your accounts offline (in the Mailbox menu or the context sensitive menu) before it crashes. Then take them online one-by-one and wait for each one to fully synchronize (no spinners for the account). This way you'll find the account with the problem.

    Then you can do the same for the mailboxes within the problematic account. While the account is offline you can use “Edit Subscriptions...” in the IMAP account editor (double-click the account under SOURCES) to unsubscribe (client side) to all mailboxes. Then take the account online. Now you can take mailboxes online one-by-one by subscribing to them in “Edit Subscriptions” (if you have many mailboxes then you may want to take half of them online in order to do a faster binary search).

    If all goes well, you'll find a single IMAP mailbox triggering the bug. Let me know and then it may be best if I make a special debug version of MailMate to get more information.

  • Riot Nrrrd™

    Riot Nrrrd™ January 26th, 2013 @ 04:46 PM

    I'm out of town all weekend but will give it a shot on Monday.

  • Riot Nrrrd™

    Riot Nrrrd™ February 4th, 2013 @ 01:01 PM

    I decided to try out the newest build (1.5.2 (3239)) on my work MacBook Pro (running 10.8.2) instead.

    That machine only has 1 account instead of the 4 I use at home.

    It still crashes:

    Process: MailMate [35784]
    Path: /Applications/MailMate.app/Contents/MacOS/MailMate
    Identifier: com.freron.MailMate
    Version: 1.5.2 (3239)
    Code Type: X86 (Native)
    Parent Process: ??? [1]
    User ID: 1074

    Date/Time: 2013-02-01 05:07:26.796 -0800
    OS Version: Mac OS X 10.8.2 (12C60)
    Report Version: 10

    Interval Since Last Report: 644828 sec
    Crashes Since Last Report: 5
    Per-App Interval Since Last Report: 17185 sec
    Per-App Crashes Since Last Report: 1
    Anonymous UUID: 52B79372-4BBA-2BDF-C83C-3131627DDC8A

    Crashed Thread: 0 Dispatch queue: com.apple.main-thread

    Exception Type: EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000

    Application Specific Information:
    terminate called throwing an exception
    abort() called

    Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
    0 libsystem_kernel.dylib 0x99112a6a pthread_kill + 10
    1 libsystem_c.dylib 0x98f3dacf pthread_kill + 101
    2 libsystem_c.dylib 0x98f744f8 abort + 168
    3 libc++abi.dylib 0x9019680c abort_message + 151
    4 libc++abi.dylib 0x90194275 default_terminate() + 34
    5 libc++abi.dylib 0x901942b5 safe_handler_caller(void (*)()) + 13
    6 libc++abi.dylib 0x9019431d std::terminate() + 23
    7 libc++abi.dylib 0x90195412 __cxa_throw + 110
    8 libstdc++.6.dylib 0x91bf72f6 operator new(unsigned long) + 127
    9 libstdc++.6.dylib 0x91be3406 std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) + 92
    10 libstdc++.6.dylib 0x91be3367 std::string::_Rep::_M_clone(std::allocator const&, unsigned long) + 39
    11 libstdc++.6.dylib 0x91be3fe8 std::string::reserve(unsigned long) + 66
    12 libstdc++.6.dylib 0x91be4235 std::string::push_back(char) + 45
    13 com.freron.MailMate.OakMIME 0x00598646 void decode_base_64 > > >(char const*, char const*, std::back_insert_iterator > >) + 98
    14 com.freron.MailMate.OakMIME 0x00592b11 bool mime_decode > > >(char const*, char const*, std::back_insert_iterator > >, std::string const&, mime_errors_handler_t&) + 141
    15 com.freron.MailMate.OakMIME 0x00571037 body_part_t::decode_body() + 5785
    16 com.freron.MailMate.OakMIME 0x005886d4 body_part_t::num_errors() + 82
    17 com.freron.MailMate.OakMIME 0x005886c4 body_part_t::num_errors() + 66
    18 com.freron.MailMate.OakMIME 0x005886c4 body_part_t::num_errors() + 66
    19 com.freron.MailMate.OakMIME 0x005886c4 body_part_t::num_errors() + 66
    20 OakDatabase.dylib 0x002a9706 database_t::add_body_part(body_part_t&, database::add_options_t, bool, int) + 754
    21 OakDatabase.dylib 0x002a6f36 database_t::add_message(std::tr1::shared_ptr, database::add_options_t) + 886
    22 OakDatabase.dylib 0x002f72ad imap_account_t::handle_data(std::tr1::shared_ptr) + 31051
    23 OakProtocols.dylib 0x00638827 connection_command_t::handle_reply(connection_command_t::result_t const&) + 231
    24 OakProtocols.dylib 0x0063994a oak::server_t, connection_command_t::result_t>::master_run() + 118
    25 OakProtocols.dylib 0x006388dd cf::member_callback_t, connection_command_t::result_t> >::member_callback_t(void (oak::server_t, connection_command_t::result_t>::*)(), oak::server_t, connection_command_t::result_t>)::helper_t::wake_up(void) + 33
    26 com.apple.CoreFoundation 0x9752466f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION
    + 15

    [...]

    I'll include the full backtrace/dump in an attachment/file this time.

  • benny

    benny February 4th, 2013 @ 01:23 PM

    Thanks for the feedback. Using a different machine shows that the problem is likely to be a particular message (I assume the account is one of the same as used on your other machine). It would be very useful to me if we could find this message. I can make a debug version which creates a log file with a note for each message parsed. When it crashes, the end of that log file can tell us more about the message. Are you willing to do that for me?

  • benny

    benny February 4th, 2013 @ 04:48 PM

    I went ahead and created a test version for you. Fetch it by holding down ⌥ when clicking “Check Now” in the Software Update preferences pane. You should get r3255.

    Before launching MailMate you should do the following in the Terminal:

    defaults write com.freron.MailMate MmDebugAddToDatabase -bool YES
    

    With that preference enabled a log file is created on the Desktop named MailMateAddToDatabase.log. After the crash you should send that to me. You can do it privately: http://freron.com/contact

    To see the last entry in the file then you can do this in the Terminal:

    tail ~/Desktop/MailMateAddToDatabase.log
    

    Maybe that can help you locate the email triggering MailMate to crash.

    Thanks in advance!

  • Riot Nrrrd™

    Riot Nrrrd™ February 5th, 2013 @ 07:04 PM

    I installed 3255 at work and so far it has not crashed. Cool! So maybe the bad message(s) is in another account. I am trying the final 3255 at home now.

  • Riot Nrrrd™

    Riot Nrrrd™ February 6th, 2013 @ 09:42 PM

    OK. The latest MailMate (3255) crashed again, this time in my home e-mail account. :(

    The last few messages in the MailMate debug log were:

    [...]
    ----------------------------
    From: MoneyTransfer2@westernunion.com  
    To: [My e-mail address elided]  
    Subject: Western Union Money Transfer(R) Confirmation  
    Date: Mon, 3 Mar 2003 14:32:25 -0600  
    Message-ID: OF6E4F03BD.DF2F41FC-ON86256CDE.0070D4EE-86256CDE.0071186F@westernunion.com  
    ----------------------------
    From: [My e-mail address elided]  
    To: bbkidcat@yahoo.com.ar  
    Cc: [My e-mail address elided]  
    Subject: Western Union Money Transfer(R) Confirmation (fwd)  
    Date: Mon, 03 Mar 2003 12:48:21 -0800  
    Message-ID: 200303032048.MAA13687@[my machine name elided]  
    ----------------------------
    From: dego lozano <bbkidcat@yahoo.com.ar>  
    To: [My e-mail address elided]  
    Subject: Re: Western Union Money Transfer(R) Confirmation (fwd)  
    Date: Tue, 4 Mar 2003 13:29:38 -0300 (ART)  
    Message-ID: 20030304162938.35035.qmail@web14512.mail.yahoo.com  
    ----------------------------
    

    Does this mean this last message is the problematic one? Or the last one before the problematic one?

    I can send the offending message file to you privately.

  • benny

    benny February 7th, 2013 @ 03:26 AM

    Yes, please send it by email: http://freron.com/contact

    It should be the last one. Maybe you should zip it first, for example, use “Compress ...” in the Finder after saving the email to the Desktop.

    Thanks!

  • Riot Nrrrd™

    Riot Nrrrd™ February 7th, 2013 @ 04:24 AM

    ZIP'ped message sent to mm-info. Hope you got it.

  • Riot Nrrrd™

    Riot Nrrrd™ April 4th, 2013 @ 12:58 AM

    Hi Benny,

    I see with 1.5.3 you are creeping slowly towards 1.6 and my inability to run MailMate at home :D

    Is there anything in the latest version that might hopefully aid me in helping figure out why it keeps crashing on my home e-mail account?

    You said you might be able to cook up a debug version once you got back from vacation ...

  • benny

    benny October 10th, 2013 @ 09:15 AM

    • State changed from “new” to “cantreproduce”

    Cleaning up old tickets. This ticket was never resolved (also not by email). I'll close it for now, but you are welcome to comment if this is still an issue. Last email from me is from April 4th, 2013.

    Note that various bugs have been fixed since this ticket was created and the issue might have been resolved.

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.

New-ticket Create new ticket

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.

Shared Ticket Bins

People watching this ticket

Pages