<<< Date Index >>>     <<< Thread Index >>>

Re: Mutt crashing on exit or replying (sometimes)



On Wed, Mar 11, 2009 at 11:18:30AM -0500, Kyle Wheeler wrote:
> On Wednesday, March 11 at 10:36 AM, quoth Joshua Tinnin:
> >Here it is:
> >
> >Program received signal SIGSEGV, Segmentation fault.
> >0x080cb71f in safe_strdup ()
> >(gdb) backtrace
> >#0  0x080cb71f in safe_strdup ()
> >#1  0x080b4d6a in rfc822_cpy_adr_real ()
> >#2  0x080bc09c in mutt_default_from ()
> >#3  0x080bc9d0 in ci_send_message ()
> >#4  0x080a20d4 in mutt_pager ()
> >#5  0x0805d753 in mutt_display_message ()
> >#6  0x0806c3c3 in mutt_index_menu ()
> >#7  0x0808c6e5 in main ()
> >(gdb) 
> 
> Very strange!
> 
> So, from what you've said so far, this crash happens when you tell 
> mutt to quit. But this backtrace looks *completely* wrong for 
> quitting. It looks like mutt crashed while attempting to send a 
> message while viewing a message. Specifically, it crashed while 
> attempting to copy the value of the $from variable.

No, I said that Mutt crashed when quitting or replying to some messages.
This is a crash when I try to reply.

> I assume that, when run inside the debugger, mutt crashed at a 
> different place than you originally reported? If so, that means the 
> reason it crashed *originally* was because it was dealing with memory 
> that had been corrupted earlier, and inside the debugger we're able to 
> catch it earlier.

No, see above.

> So, let's try a few things. First, let's check the values of $use_from 
> and $from in your muttrc (obviously, mutt shouldn't crash no matter 
> what those settings are, but it did crash, so now we're trying to 
> figure out why).

set use_from=yes
set from="jrt@xxxxxxxxxxx"

> Second, instead of running mutt inside gdb with just 
> the `run` command, try `run -d 5` so that mutt will create the 
> ~/.muttdebug0 file. And when it crashes, let's see what the last few 
> lines of that file look like.

OK. 

Here's a backtrace from when I quit and it crashes:

Program received signal SIGSEGV, Segmentation fault.
0x28587029 in free () from /lib/libc.so.7
(gdb) backtrace
#0  0x28587029 in free () from /lib/libc.so.7
#1  0x080cb622 in safe_free ()
#2  0x080b3648 in rfc822_free_address ()
#3  0x08076965 in mutt_free_opt ()
#4  0x080769e2 in mutt_free_opts ()
#5  0x0808c704 in main ()
(gdb) 

Here's the .muttdebug0:

25498 mutt_addr_is_user: no, all failed.
25499 mutt_addr_is_user: no, all failed.
25500 mutt_addr_is_user: no, all failed.
25501 mutt_addr_is_user: no, all failed.
25502 mutt_index_menu[617]: Got op 145


Here's a backtrace when it crashes from replying:

0x080cb71f in safe_strdup ()
(gdb) backtrace
#0  0x080cb71f in safe_strdup ()
#1  0x080b4d6a in rfc822_cpy_adr_real ()
#2  0x080bc09c in mutt_default_from ()
#3  0x080bc9d0 in ci_send_message ()
#4  0x080a20d4 in mutt_pager ()
#5  0x0805d753 in mutt_display_message ()
#6  0x0806c3c3 in mutt_index_menu ()
#7  0x0808c6e5 in main ()
(gdb) 

Here's the .muttdebug0

25686 mutt_addr_is_user: no, all failed.
25687 mutt_addr_is_user: no, all failed.
25688 send.c:1183: mutt_mktemp returns "/tmp/mutt-smogmonster-ozLk0Waq-00007".
25689 mutt_addr_is_user: no, all failed.
25690 mutt_addr_is_user: no, all failed.

- jt