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 677438 - [abrt] [POP3] Crash on disconnect with ongoing message download
[abrt] [POP3] Crash on disconnect with ongoing message download
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.10.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2012-06-05 07:02 UTC by Milan Crha
Modified: 2015-08-31 10:26 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Milan Crha 2012-06-05 07:02:51 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=828352

[abrt] evolution-3.4.2-1.fc17: __strlen_sse2_pminub: Process /usr/bin/evolution was killed by signal 11 (SIGSEGV)

libreport version: 2.0.10
abrt_version:   2.0.10
backtrace_rating: 4
cmdline:        evolution
crash_function: __strlen_sse2_pminub
executable:     /usr/bin/evolution
kernel:         3.3.7-1.fc17.x86_64
time:           Po  4. jún 2012, 18:46:17 CEST

:(evolution:30347): camel-pop3-provider-WARNING **: Bad server response: 224 7239644
:(evolution:30347): camel-WARNING **: CamelPOP3Folder::refresh_info_sync() reported failure without setting its GError

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

Thread 7 (Thread 0x7f265eb55700 (LWP 32255))

  • #0 write
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 write_string
    at gmessages.c line 283
  • #2 g_log_default_handler
    at gmessages.c line 1255
  • #3 g_logv
  • #4 g_log
  • #5 camel_folder_refresh_info_sync
    at camel-folder.c line 3928
  • #6 camel_pop3_folder_new
    at camel-pop3-folder.c line 957
  • #7 store_get_inbox_folder_sync
    at camel-store.c line 309
  • #8 camel_store_get_inbox_folder_sync
    at camel-store.c line 2187
  • #9 e_mail_session_get_inbox_sync
    at e-mail-session.c line 1716
  • #10 fetch_mail_exec
    at mail-ops.c line 273
  • #11 mail_msg_proxy
    at mail-mt.c line 423
  • #12 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #13 g_thread_proxy
    at gthread.c line 801
  • #14 start_thread
    at pthread_create.c line 309
  • #15 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Thread 1 (Thread 0x7f265df21700 (LWP 32284))

  • #0 __strlen_sse2_pminub
    at ../sysdeps/x86_64/multiarch/strlen-sse2-pminub.S line 39
  • #1 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 348
  • #2 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 294
  • #3 pop3_store_disconnect_sync
    at camel-pop3-store.c line 446
  • #4 camel_service_disconnect_sync
    at camel-service.c line 1186
  • #5 em_utils_disconnect_service_sync
    at e-mail-utils.c line 1064
  • #6 mail_store_go_offline_thread
    at e-mail-store-utils.c line 192
  • #7 run_in_thread
    at gsimpleasyncresult.c line 861
  • #8 io_job_thread
    at gioscheduler.c line 177
  • #9 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #10 g_thread_proxy
    at gthread.c line 801
  • #11 start_thread
    at pthread_create.c line 309
  • #12 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Comment 1 Milan Crha 2013-07-08 10:14:20 UTC
Another downstream crash from 3.8.3:
https://bugzilla.redhat.com/show_bug.cgi?id=981897

The camel-pop3-engine.c:366 is:
362		break;
363	}
364
365	g_queue_push_tail (&pe->done, pc);
366	pe->sentlen -= strlen (pc->data);
367
368	/* Set next command */
369	pe->current = g_queue_pop_head (&pe->active);

Thread 1 (Thread 0xa24c5b40 (LWP 4036))

  • #0 __strlen_sse2_bsf
    at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S line 50
  • #1 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 366
  • #2 pop3_store_disconnect_sync
    at camel-pop3-store.c line 576
  • #3 service_disconnect_thread
    at camel-service.c line 834
  • #4 run_in_thread
    at gsimpleasyncresult.c line 871
  • #5 io_job_thread
    at gioscheduler.c line 89
  • #6 g_task_thread_pool_thread
    at gtask.c line 1242
  • #7 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #8 g_thread_proxy
    at gthread.c line 798
  • #9 start_thread
    at pthread_create.c line 308
  • #10 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 131

Comment 2 Milan Crha 2014-09-18 05:43:32 UTC
And one from 3.10.4:
https://bugzilla.redhat.com/show_bug.cgi?id=1143037

Description of problem:
Closed laptop by mistake when collecting mail. On resume evolution crashed.

Version-Release number of selected component:
evolution-3.10.4-3.fc20

Additional info:
reporter:       libreport-2.2.3
backtrace_rating: 4
cmdline:        evolution
crash_function: strlen
executable:     /usr/bin/evolution
kernel:         3.16.2-200.fc20.x86_64

Thread 1 (Thread 0x7f5192c8f700 (LWP 3928))

  • #0 strlen
    at ../sysdeps/x86_64/strlen.S line 106
  • #1 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 366
  • #2 pop3_store_disconnect_sync
    at camel-pop3-store.c line 606
  • #3 service_disconnect_thread
    at camel-service.c line 834
  • #4 run_in_thread
    at gsimpleasyncresult.c line 871
  • #5 io_job_thread
    at gioscheduler.c line 89
  • #6 g_task_thread_pool_thread
    at gtask.c line 1245
  • #7 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #8 g_thread_proxy
    at gthread.c line 798
  • #9 start_thread
    at pthread_create.c line 309
  • #10 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Comment 3 Milan Crha 2015-08-19 09:09:35 UTC
I've just got a downstream bug report from 3.16.4:
https://bugzilla.redhat.com/show_bug.cgi?id=1254283

Its backtrace shows what might cause the crash here: The user has configured (at least one) POP3 account, which had been downloading a message, while the user changed some setting on that account and when he confirmed the changes the evolution disconnected the POP3 account, to make sure the new changes are used. The problem was that the ongoing command was processed twice, effectively causing double free.
Comment 4 Milan Crha 2015-08-31 10:26:11 UTC
I fixed this by adding a busy lock on the pop3_engin, which makes sure there will not be done multiple operations on one engine instance at the same time.

Created commit b7ed85f in eds master (3.17.92+)