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 352724 - Problems when indexing/writing summaries for huge mboxes
Problems when indexing/writing summaries for huge mboxes
Status: RESOLVED NOTGNOME
Product: evolution
Classification: Applications
Component: Mailer
2.8.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2006-08-24 20:33 UTC by Kjartan Maraas
Modified: 2013-09-13 00:49 UTC
See Also:
GNOME target: 2.16.x
GNOME version: 2.15/2.16


Attachments
full backtrace with memory map (36.51 KB, text/plain)
2006-08-24 20:33 UTC, Kjartan Maraas
Details

Description Kjartan Maraas 2006-08-24 20:33:05 UTC
I've been seeing crashes in various situations lately and some were fixed by a recent glibc update, but I still see some very strange crashes with HEAD and the latest rawhide packages. I ran a jhbuilt version today with MALLOC_PERTURB_ and got this error and backtrace:

*** glibc detected *** evolution-2.8: corrupted double-linked list: 0x0f7c72f0 ***
======= Backtrace: =========
/lib/libc.so.6[0x4a4953a]
/lib/libc.so.6[0x4a4b61d]
/lib/libc.so.6[0x4a4cae3]
/lib/libc.so.6(realloc+0xfa)[0x4a4d66a]
/opt/gnome2/lib/libglib-2.0.so.0(g_realloc+0x3b)[0x666c33b]
/opt/gnome2/lib/libglib-2.0.so.0[0x66471b8]
/opt/gnome2/lib/libglib-2.0.so.0(g_ptr_array_add+0x2a)[0x664721a]
/opt/gnome2/lib/libedataserver-1.2.so.7[0x1f3494]
/opt/gnome2/lib/libglib-2.0.so.0(g_hash_table_foreach+0x56)[0x6658256]
/opt/gnome2/lib/libedataserver-1.2.so.7[0x1f4b8d]
/opt/gnome2/lib/libedataserver-1.2.so.7(e_sexp_term_eval+0x196)[0x1f3d56]
/opt/gnome2/lib/libedataserver-1.2.so.7(e_sexp_eval+0x40)[0x1f3dd0]
/opt/gnome2/lib/libcamel-provider-1.2.so.8(camel_folder_search_search+0x192)[0xdbc1f2]
/opt/gnome2/lib/evolution-data-server-1.2/camel-providers/libcamellocal.so[0x5f86d89]
/opt/gnome2/lib/libcamel-provider-1.2.so.8(camel_folder_search_by_expression+0x4a)[0xdc617a]
/opt/gnome2/lib/evolution/2.8/components/libevolution-mail.so[0x1512d8b]
/opt/gnome2/lib/evolution/2.8/components/libevolution-mail.so[0x1504a35]
/opt/gnome2/lib/libedataserver-1.2.so.7[0x1f20e4]
/lib/libpthread.so.0[0xc301b9]
/lib/libc.so.6(clone+0x5e)[0x4ab1c2e]

Matthias thought this looked like evolution thrashing glibc's malloc data structures. It's been happening every time I start up evolution after selecting the problematic folder, a 1.6 gb mbox file with linux-kernel mailing list archives, so it seems to start just when it's finishing the update of the summary files, but is more reproducable now with this huge folder that has no summary yet. To reproduce I guess it's just a matter of using cat(1) on enough monthly archives to make one of this size.
Comment 1 Kjartan Maraas 2006-08-24 20:33:54 UTC
Created attachment 71546 [details]
full backtrace with memory map
Comment 2 Kjartan Maraas 2006-08-25 09:43:06 UTC
Adding to the 2.16.x milestone
Comment 3 Karsten Bräckelmann 2006-08-25 10:40:23 UTC
FWIW, the glibc bug mentioned is bug 351027
(and http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=202309 ).
Comment 4 Kjartan Maraas 2006-08-27 21:05:16 UTC
I get a crash now when I start up evolution. It's fetching mail and saving a folder at the same time and I get this backtrace:

  • #0 camel_index_add_name
    at camel-index.c line 183
  • #1 camel_folder_summary_info_new_from_parser
    at camel-folder-summary.c line 1026
  • #2 camel_folder_summary_add_from_parser
    at camel-folder-summary.c line 931
  • #3 summary_update
    at camel-mbox-summary.c line 485
  • #4 mbox_summary_check
    at camel-mbox-summary.c line 572
  • #5 camel_local_summary_check
    at camel-local-summary.c line 268
  • #6 mbox_append_message
    at camel-mbox-folder.c line 203
  • #7 camel_folder_append_message
    at camel-folder.c line 648
  • #8 do_move
    at camel-filter-driver.c line 546
  • #9 e_sexp_term_eval
    at e-sexp.c line 710
  • #10 term_eval_begin
    at e-sexp.c line 654
  • #11 e_sexp_term_eval
    at e-sexp.c line 700
  • #12 e_sexp_eval
    at e-sexp.c line 1304
  • #13 camel_filter_driver_filter_message
    at camel-filter-driver.c line 1458
  • #14 camel_filter_driver_filter_folder
    at camel-filter-driver.c line 1276
  • #15 em_filter_folder_element_filter
    at mail-ops.c line 140
  • #16 fetch_mail_fetch
    at mail-ops.c line 325
  • #17 mail_msg_received
    at mail-mt.c line 570
  • #18 thread_dispatch
    at e-msgport.c line 987
  • #19 start_thread
    at pthread_create.c line 283
  • #20 ??
    from /lib/libc.so.6

gdb says the stack might be corrupt so the crash could be a symtom of an underlying issue of course...
Comment 5 Kjartan Maraas 2006-08-28 09:36:30 UTC
This is the crash with backtrace from bug-buddy. It's not a crash really, but g_realloc aborting because it can't allocate memory. This is the very same backtrace that was reported as a glibc problem, but I'm running the fixed glibc, so that shouldn't be the problem this time.

Memory status: size: 379072512 vsize: 0 resident: 379072512 share: 0 rss: 180854784 rss_rlim: 0
CPU usage: start_time: 1156755735 rtime: 0 utime: 8354 stime: 0 cutime:4655 cstime: 0 timeout: 3699 it_real_value: 0 frequency: 223

Backtrace was generated from '/usr/bin/evolution-2.8'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1208518960 (LWP 4137)]
[New Thread -1366910064 (LWP 4179)]
[New Thread -1355801712 (LWP 4175)]
[New Thread -1345311856 (LWP 4174)]
[New Thread -1334621296 (LWP 4173)]
[New Thread -1272673392 (LWP 4148)]
[New Thread -1261950064 (LWP 4147)]
0xb7faa402 in __kernel_vsyscall ()

Thread 4 (Thread -1345311856 (LWP 4174))

  • #0 __kernel_vsyscall
  • #1 ??
    from /lib/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 867
  • #3 <signal handler called>
  • #4 __kernel_vsyscall
  • #5 *__GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #6 *__GI_abort
    at abort.c line 88
  • #7 IA__g_logv
    at gmessages.c line 497
  • #8 IA__g_log
    at gmessages.c line 517
  • #9 IA__g_realloc
    at gmem.c line 172
  • #10 g_ptr_array_maybe_expand
    at garray.c line 414
  • #11 IA__g_ptr_array_add
    at garray.c line 576
  • #12 search_match_all
    at camel-folder-search.c line 705
  • #13 e_sexp_term_eval
    at e-sexp.c line 700
  • #14 term_eval_and
    at e-sexp.c line 255
  • #15 e_sexp_term_eval
    at e-sexp.c line 700
  • #16 e_sexp_eval
    at e-sexp.c line 1304
  • #17 camel_folder_search_search
  • #18 local_search_by_expression
  • #19 camel_folder_search_by_expression
  • #20 regen_list_regen
    at message-list.c line 3693
  • #21 mail_msg_received
    at mail-mt.c line 570
  • #22 thread_dispatch
    at e-msgport.c line 987
  • #23 start_thread
    at pthread_create.c line 283
  • #24 ??
    from /lib/libc.so.6

Comment 6 Kjartan Maraas 2006-08-29 22:00:51 UTC
Turns out this was a glibc bug after all. The first fix they commited didn't cover all cases it seems. Been running for hours without a crash now and I've tried hard to trigger it, but everything seems stable which is good :-) Closing.