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 669082 - Crash in imapx_command_copy_messages_step_done at camel-imapx-server.c:3325
Crash in imapx_command_copy_messages_step_done at camel-imapx-server.c:3325
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.6.x (obsolete)
Other Linux
: High critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[imapx]
Depends on:
Blocks:
 
 
Reported: 2012-01-31 03:42 UTC by Akhil Laddha
Modified: 2014-02-11 15:57 UTC
See Also:
GNOME target: ---
GNOME version: 3.5/3.6


Attachments
Avoid the SEGV (522 bytes, patch)
2012-11-02 10:44 UTC, Andreas Kohn
committed Details | Review

Description Akhil Laddha 2012-01-31 03:42:13 UTC
Evolution 3.3.5

Started evolution, message fetching and filtering were going on, evolution crashed in the middle somewhere.

Program received signal SIGSEGV, Segmentation fault.

Thread 2 (Thread 0xb5e42b70 (LWP 2115))

  • #0 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 read
    at /usr/include/bits/unistd.h line 45
  • #2 unix_signal_helper_thread
    at gmain.c line 4551
  • #3 g_thread_create_proxy
    at gthread.c line 1962
  • #4 start_thread
    at pthread_create.c line 301
  • #5 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Comment 1 Akhil Laddha 2012-02-07 04:38:50 UTC
not sure if it's the same crash or different one

Program received signal SIGSEGV, Segmentation fault.

Thread 2 (Thread 0xb5e41b70 (LWP 2230))

  • #0 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 read
    at /usr/include/bits/unistd.h line 45
  • #2 unix_signal_helper_thread
    at gmain.c line 4551
  • #3 g_thread_create_proxy
    at gthread.c line 1962
  • #4 start_thread
    at pthread_create.c line 301
  • #5 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Thread 1 (Thread 0xb611c890 (LWP 2226))

  • #0 memcpy
    at ../sysdeps/i386/i586/memcpy.S line 118
  • #1 g_strdup
    at /usr/include/bits/string3.h line 52
  • #2 camel_url_set_host
    at camel-url.c line 511
  • #3 camel_service_new_camel_url
    at camel-service.c line 781
  • #4 camel_session_get_service_by_url
    at camel-session.c line 923
  • #5 e_mail_folder_uri_parse
  • #6 e_mail_folder_uri_equal
    at e-mail-folder-utils.c line 1578
  • #7 em_utils_folder_is_sent
    at e-mail-utils.c line 216
  • #8 update_1folder
    at mail-folder-cache.c line 357
  • #9 folder_changed_cb
    at mail-folder-cache.c line 494
  • #10 g_cclosure_marshal_VOID__POINTER
    at gmarshal.c line 609
  • #11 g_closure_invoke
    at gclosure.c line 774
  • #12 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #13 g_signal_emit_valist
    at gsignal.c line 3003
  • #14 g_signal_emit
    at gsignal.c line 3060
  • #15 folder_emit_changed_cb
    at camel-folder.c line 186
  • #16 g_idle_dispatch
    at gmain.c line 4785
  • #17 g_main_dispatch
    at gmain.c line 2425
  • #18 g_main_context_dispatch
    at gmain.c line 2995
  • #19 g_main_context_iterate
    at gmain.c line 3073
  • #20 g_main_loop_run
    at gmain.c line 3281
  • #21 gtk_main
    at gtkmain.c line 1362
  • #22 main
    at main.c line 673

Comment 2 Akhil Laddha 2012-05-17 09:36:30 UTC
Evolution 3.5.2 (gwimap)

(evolution:2028): camel-WARNING **: CamelStreamFs::close() set its GError but then reported success

(evolution:2028): camel-WARNING **: Error message was: Error fetching message headers: UID FETCH (7204)


Program received signal SIGSEGV, Segmentation fault.

Thread 2776628080 (LWP 2055)

  • #0 imapx_command_copy_messages_step_done
    at camel-imapx-server.c line 3394
  • #1 cancel_all_jobs
    at camel-imapx-server.c line 5240
  • #2 imapx_parser_thread
    at camel-imapx-server.c line 5330
  • #3 g_thread_proxy
    at gthread.c line 801
  • #4 start_thread
    at pthread_create.c line 301
  • #5 clone
    from /lib/libc.so.6

Comment 3 Milan Crha 2012-05-23 07:46:57 UTC
Similar downstream bug report from 3.2.3:
https://bugzilla.redhat.com/show_bug.cgi?id=824262
Comment 4 Milan Crha 2012-06-18 08:01:13 UTC
And another one from 3.4.2:
https://bugzilla.redhat.com/show_bug.cgi?id=832777

Thread 1 (Thread 0x7f39abc5e700 (LWP 3144))

  • #0 imapx_command_copy_messages_step_done
    at camel-imapx-server.c line 3388
  • #1 camel_imapx_job_run
    at camel-imapx-job.c line 194
  • #2 imapx_submit_job
    at camel-imapx-server.c line 1996
  • #3 camel_imapx_server_copy_message
    at camel-imapx-server.c line 5754
  • #4 imapx_transfer_messages_to_sync
    at camel-imapx-folder.c line 720
  • #5 transfer_messages_exec
    at mail-ops.c line 1073
  • #6 mail_msg_proxy
    at mail-mt.c line 423
  • #7 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #8 g_thread_proxy
    at gthread.c line 801
  • #9 start_thread
    at pthread_create.c line 309
  • #10 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Comment 5 Adam Williamson 2012-08-02 19:49:05 UTC
I just hit this with 3.4.3-2 (Fedora 17).
Comment 6 Adam Williamson 2012-08-16 16:30:18 UTC
And now with 3.5.5.
Comment 7 Milan Crha 2012-10-29 11:02:26 UTC
Another downstream bug report from 3.6.1:
https://bugzilla.redhat.com/show_bug.cgi?id=870709

Core was generated by `evolution'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 0x7fdba0e9d700 (LWP 4376))

  • #0 imapx_command_copy_messages_step_done
    at camel-imapx-server.c line 4030
  • #1 cancel_all_jobs
    at camel-imapx-server.c line 5897
  • #2 imapx_parser_thread
    at camel-imapx-server.c line 6023
  • #3 g_thread_proxy
    at gthread.c line 797
  • #4 start_thread
    at pthread_create.c line 308
  • #5 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 114

Comment 8 Andreas Kohn 2012-11-02 10:44:26 UTC
Created attachment 227881 [details] [review]
Avoid the SEGV

I get those crashes frequently with evolution 3.4.4 (Fedora 17). 

The attached patch prevents the SEGV, and with that I can now see the underlying cause, for example here:
---
[imapx:A] Got continuation response for IDLE 
[imapx:A] ** Starting next command
[imapx:A] * no, no jobs
[imapx:A] camel_imapx_read: -1
[imapx:A] Caught exception in idle thread:  I/O operation timed out 
[imapx:B] camel_imapx_read: buffer is '* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc.  See COPYING for distribution information.
---

The mailbox in question is fairly big (a few 10k emails).

With the patch evolution doesn't crash anymore, but still quite often has to re-fetch all emails.

Note that checking ic->status happens in other functions as well, so this might be a valid improvement even though the cause of the issue isn't fixed:
* imapx_command_select_done
* imapx_command_append_message_done
Comment 9 Milan Crha 2012-11-07 11:37:05 UTC
Thanks for the patch. I'm fine with the workaround, it's better than crashing application. I left the bug opened, for the reasons you wrote in the above comment.

Created commit 56e8972 in eds master (3.7.2+)
Created commit 92b7365 in eds gnome-3-6 (3.6.2+)
Comment 10 Matthew Barnes 2014-02-11 15:57:39 UTC
I think the remaining issue has been handled.  Closing.