Re: balsa crash identified



Here is what I have understodd just looking quickly at the code (so much
work .. :( )

The object BalsaMessage contains a pointer to a LibBalsaMessage object.
When the main window receives the destroy event, it handles it, and at
some point the function libbalsa_mailbox_real_close is called, which in
return calls 
libbalsa_mailbox_free_messages. This last function gets all the
LibBalsaMessage of the mailbox and destroy it.
As this message is destroyed the message_destroyed_cb function is
called, which is used to set the LibBalsaMessage pointer of the
BalsaMessage to NULL (using balsa_message_set). But at this point the
pointer is already set to 0x80 .. So it lands to a SIGSEGV ..
Here's the dump of the stakc I have :

Program received signal SIGSEGV, Segmentation fault.
0x807fe86 in libbalsa_message_body_unref (message=0x80) at message.c:678
678       g_return_if_fail ( LIBBALSA_IS_MESSAGE (message) );
(gdb) where
#0  0x807fe86 in libbalsa_message_body_unref (message=0x80) at
message.c:678
#1  0x8061fd2 in balsa_message_set (bm=0x813f278, message=0x0)
    at balsa-message.c:344
#2  0x8061f2c in message_destroyed_cb (message=0x815fe50, bm=0x813f278)
    at balsa-message.c:315
#3  0x401eed67 in gtk_marshal_NONE__NONE (object=0x815fe50,
    func=0x8061f18 <message_destroyed_cb>, func_data=0x813f278,
    args=0xbfffea00) at gtkmarshal.c:312
#4  0x4021eae8 in gtk_handlers_run (handlers=0x8149e80,
signal=0xbfffe9ac,
    object=0x815fe50, params=0xbfffea00, after=0) at gtksignal.c:1917
#5  0x4021deff in gtk_signal_real_emit (object=0x815fe50, signal_id=1,
    params=0xbfffea00) at gtksignal.c:1477
#6  0x4021bef7 in gtk_signal_emit (object=0x815fe50, signal_id=1)
    at gtksignal.c:552
#7  0x402005bc in gtk_object_shutdown (object=0x815fe50) at
gtkobject.c:255
#8  0x4020055a in gtk_object_destroy (object=0x815fe50) at
gtkobject.c:246
#9  0x8082f08 in libbalsa_mailbox_free_messages (mailbox=0x8104288)
    at mailbox.c:657
#10 0x808299f in libbalsa_mailbox_real_close (mailbox=0x8104288)
    at mailbox.c:492
#11 0x401eed67 in gtk_marshal_NONE__NONE (object=0x8104288,
    func=0x8082924 <libbalsa_mailbox_real_close>, func_data=0x0,
    args=0xbfffee20) at gtkmarshal.c:312
#12 0x4021df3d in gtk_signal_real_emit (object=0x8104288, signal_id=96,
    params=0xbfffee20) at gtksignal.c:1492
#13 0x4021bef7 in gtk_signal_emit (object=0x8104288, signal_id=96)
    at gtksignal.c:552
#14 0x8082638 in libbalsa_mailbox_close (mailbox=0x8104288) at
mailbox.c:428
#15 0x806e999 in force_close_mailbox (mailbox=0x8104288) at main.c:276
#16 0x806ea60 in balsa_exit () at main.c:319
#17 0x806c4ca in balsa_window_destroy (object=0x81055b8) at
main-window.c:815
#18 0x401eed67 in gtk_marshal_NONE__NONE (object=0x81055b8,
    func=0x806c430 <balsa_window_destroy>, func_data=0x0,
args=0xbffff210)
    at gtkmarshal.c:312
#19 0x4021df3d in gtk_signal_real_emit (object=0x81055b8, signal_id=1,
    params=0xbffff210) at gtksignal.c:1492
#20 0x4021bef7 in gtk_signal_emit (object=0x81055b8, signal_id=1)
    at gtksignal.c:552
#21 0x402005bc in gtk_object_shutdown (object=0x81055b8) at
gtkobject.c:255
#22 0x4025762a in gtk_widget_shutdown (object=0x81055b8) at
gtkwidget.c:4386
#23 0x4025a168 in gtk_window_shutdown (object=0x81055b8) at
gtkwindow.c:656
#24 0x4020055a in gtk_object_destroy (object=0x81055b8) at
gtkobject.c:246
#25 0x4024fec9 in gtk_widget_destroy (widget=0x81055b8) at
gtkwidget.c:1388
#26 0x401ed927 in gtk_main_do_event (event=0x8159278) at gtkmain.c:696
#27 0x4029d03a in gdk_event_dispatch (source_data=0x8059974,
    current_time=0x404970b8, user_data=0x4049718c) at gdkevents.c:2129
#28 0x8058a44 in pthread_mutex_lock () at gtkcontainer.c:694
#29 0x5b000000 in ?? ()
Cannot access memory at address 0xe85356


Note that there is also a lot of gtk/gdk warnings sent beginning with
the function in frame #8

I hope it helps :)

By the way does anybody handles the implementation of folders (in order
to have filters working ..) ??
Is there a way to have several images embedded in mail displayed
together ??

Best Regards.
Frederick Ros.



Joaquim Fellmann wrote:
> 
> Hye,
> 
> I checked what Frederic Ros described :
> 
> - run balsa.
> - open a mailbox.
> - select a message
> - click on the small cross of the window, not on the File/Quit menu
> - balsa crashes (every times I tried)
> 
> running under gdb :
> 
> Breakpoint 1, message_destroyed_cb (message=0x8175ca0, bm=0x806130c)
>     at balsa-message.c:312
> 312     balsa-message.c: Aucun fichier ou répertoire de ce type.
> (gdb) print bm->message
> $1 = (LibBalsaMessage *) 0x80a5e9a
> (gdb) step
> balsa_message_set (bm=0x813e110, message=0x0) at balsa-message.c:330
> 330     in balsa-message.c
> (gdb) print bm->message
> $2 = (LibBalsaMessage *) 0x80
> 
> bm->message is the symbol that causes problem. Before function
> balsa_message_set (in message_destroyed_cb) , it's a significant value, but
> at the very beginning of the function, it has an invalid value (0x80)
> 
> Can someone explain this to me ?
> 
> Thanks
> 
> _______________________________________________
> balsa-list mailing list
> balsa-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/balsa-list

-- 
Frederick Ros
Ulticom, Inc
Phone: +33.497.234.520
Frederick.Ros@ulticom.com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]