After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 639717 - Crash imapx_command_select_done at camel-imapx-server.c:2490
Crash imapx_command_select_done at camel-imapx-server.c:2490
Status: RESOLVED OBSOLETE
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.2.x (obsolete)
Other Linux
: High critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[imapx]
: 657847 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-01-17 05:06 UTC by Akhil Laddha
Modified: 2013-08-22 17:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to deal with ic->status being 0x0 (1.20 KB, patch)
2011-08-26 09:38 UTC, Raul Gutierrez Segales
reviewed Details | Review

Description Akhil Laddha 2011-01-17 05:06:17 UTC
evolution 2.91.5
glib master
gtk 2.24

1. Created a filter
2. Pressed ctrl+y
3. Status bar says 'filtering...'
4. Waited for more than 10 minutes but it didn't filter around 150 mails
5. Pressed Cancel on tool bar and evolution crashed.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xab3ffb70 (LWP 8817)]
0xad3e3263 in imapx_command_select_done (is=0x8573010, ic=0xa9304798) at camel-imapx-server.c:2490
2490							ic->status->text? ic->status->text:"<unknown reason>");
(gdb) t a a bt

Thread 1 (Thread 0xb5fe8830 (LWP 8801))

  • #0 thread_memory_from_self
    at gslice.c line 440
  • #1 g_slice_free1
    at gslice.c line 883
  • #2 g_signal_emit_valist
    at gsignal.c line 3014
  • #3 g_signal_emit
    at gsignal.c line 3040
  • #4 gtk_button_released
    at gtkbutton.c line 1120
  • #5 gtk_button_button_release
    at gtkbutton.c line 1617
  • #6 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #7 g_type_class_meta_marshal
    at gclosure.c line 878
  • #8 g_closure_invoke
    at gclosure.c line 767
  • #9 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #10 g_signal_emit_valist
    at gsignal.c line 2993
  • #11 g_signal_emit
    at gsignal.c line 3040
  • #12 gtk_widget_event_internal
    at gtkwidget.c line 4980
  • #13 IA__gtk_widget_event
    at gtkwidget.c line 4777
  • #14 IA__gtk_propagate_event
    at gtkmain.c line 2466
  • #15 IA__gtk_main_do_event
    at gtkmain.c line 1671
  • #16 gdk_event_dispatch
    at gdkevents-x11.c line 2377
  • #17 g_main_dispatch
    at gmain.c line 2440
  • #18 g_main_context_dispatch
    at gmain.c line 3013
  • #19 g_main_context_iterate
    at gmain.c line 3091
  • #20 g_main_loop_run
    at gmain.c line 3299
  • #21 IA__gtk_main
    at gtkmain.c line 1243
  • #22 main
    at main.c line 734
  • #0 imapx_command_select_done
    at camel-imapx-server.c line 2490
  • #1 cancel_all_jobs
    at camel-imapx-server.c line 4810
  • #2 imapx_parser_thread
    at camel-imapx-server.c line 4933
  • #3 g_thread_create_proxy
    at gthread.c line 1897
  • #4 start_thread
    from /lib/libpthread.so.0
  • #5 clone
    from /lib/libc.so.6
(gdb)
Comment 1 Milan Crha 2011-02-10 09:45:36 UTC
Downstream bug report about the same in 2.32.1:
https://bugzilla.redhat.com/show_bug.cgi?id=676391
Comment 2 Pedro Villavicencio 2011-04-20 12:34:56 UTC
we also have a report about this here: https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/767086
Comment 3 Akhil Laddha 2011-06-03 06:49:21 UTC
evolution 3.1.2

Program received signal SIGSEGV, Segmentation fault.

Thread 2977512304 (LWP 2758)

  • #0 imapx_command_select_done
    at camel-imapx-server.c line 2539
  • #1 cancel_all_jobs
    at camel-imapx-server.c line 4911
  • #2 imapx_parser_thread
    at camel-imapx-server.c line 5036
  • #3 g_thread_create_proxy
    at gthread.c line 1897
  • #4 start_thread
    from /lib/libpthread.so.0
  • #5 clone
    from /lib/libc.so.6

Comment 4 Raul Gutierrez Segales 2011-08-26 09:31:41 UTC
I think I've got hit by this problem too.

Running Evo 3.1.4 with e-d-s 3.1.5 I just got a crash with the following backtrace:

Program received signal SIGSEGV, Segmentation fault.

Thread 140735626057472 (LWP 21730)

  • #0 imapx_command_select_done
    at camel-imapx-server.c line 2567
  • #1 cancel_all_jobs
    at camel-imapx-server.c line 4881
  • #2 imapx_parser_thread
    at camel-imapx-server.c line 5006
  • #3 g_thread_create_proxy
    at gthread.c line 1954
  • #4 start_thread
    at pthread_create.c line 305
  • #5 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115


It tries to access ic->status->text but ic->status is NULL:

(gdb) print ic->status
$20 = (struct _status_info *) 0x0

I guess we should protect that path if with if (ic->status) or figure why status is 0x0 in the first place.
Comment 5 Raul Gutierrez Segales 2011-08-26 09:38:40 UTC
Created attachment 194802 [details] [review]
Patch to deal with ic->status being 0x0

The attached patch makes sure we can cope with ic->status being NULL (which is what is triggering the crash).
Comment 6 Milan Crha 2011-08-26 10:51:05 UTC
Patch can be used as a workaround till proper fix, and why it happened, will be found. Only add a g_debug() when the ic->status is NULL, to know that it happened, with a FIXME comment above it with a little bit explanation.
Comment 7 Raul Gutierrez Segales 2011-08-26 14:00:40 UTC
Merged the workaround: 

commit 094ab8f70b5b9750448c8b65ca32d5282c886460
Author: Raul Gutierrez Segales <rgs@collabora.co.uk>
Date:   Fri Aug 26 10:36:02 2011 +0100

    Check ic->status is not NULL imapx_command_select_done ()
    
    There are ocassions (are they even valid?) in which ic->status
    might be NULL, so we check for that before trying to access
    ic->status->text when calling g_set_error ().
    
    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=639717

Should we close this or leave it open until we find the root cause?
Comment 8 Fabio Durán Verdugo 2011-08-31 18:15:34 UTC
*** Bug 657847 has been marked as a duplicate of this bug. ***
Comment 9 Fabio Durán Verdugo 2011-08-31 18:16:41 UTC
last dup in 3.1.5.x
Comment 10 Matthew Barnes 2013-08-22 17:06:49 UTC
Closing as OBSOLETE since the stack trace(s) are too old to be useful at this point.