put this in bug report on bugzilla.ximian.com
FWIW it *looks* like something else (probably etable) is causing memory
corruption.
try running it in valgrind perhaps, if you have a reliable way to make
this happen?
On Wed, 2003-03-05 at 01:38, Mika Liljeberg wrote:
> Package: Evolution
> Priority: Normal
> Version: 1.2.2
> Synopsis: Double SEGV and deadlock [SMP]
> Bugzilla-Product: Evolution
> Bugzilla-Component: Mailer
>
> Description:
>
> Threads 3 and 1 both receive a SEGV. Thread 1 is in libc free()
> function. Post mortem on thread 3 indicates that e_mempool_new() may be
> returning a garbage pointer. The application deadlocks attempting to
> display gnome crash dialog.
>
>
> (gdb) thread apply all bt
>
> Thread 9 (Thread 180232 (LWP 1907)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbebffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x416c23c8) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x41406ac0) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x416e6830) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbebffbe0) at manager.c:300
>
> Thread 8 (Thread 98311 (LWP 1902)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbedffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x814ba70) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x814ba40) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x814b9e8) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbedffbe0) at manager.c:300
>
> Thread 7 (Thread 81926 (LWP 1901)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbefffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x814ba70) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x814ba40) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x814b9e8) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbefffbe0) at manager.c:300
>
> Thread 6 (Thread 114693 (LWP 1903)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbf1ffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x814ba70) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x814ba40) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x814b9e8) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbf1ffbe0) at manager.c:300
>
> Thread 5 (Thread 49156 (LWP 1896)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbf3ffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x814ba70) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x814ba40) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x814b9e8) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbf3ffbe0) at manager.c:300
>
> Thread 4 (Thread 32771 (LWP 1893)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbf5ffbe0) at
> pthread.c:1084
> #2 0x4038ef05 in pthread_cond_wait (cond=0x0, mutex=0x814b9b8) at restart.h:34
> #3 0x4022caea in e_msgport_wait (mp=0x814b988) at e-msgport.c:305
> #4 0x4022d38a in thread_dispatch (din=0x814b930) at e-msgport.c:665
> #5 0x4038fd53 in pthread_start_thread (arg=0xbf5ffbe0) at manager.c:300
>
> Thread 3 (Thread 16386 (LWP 1892)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0xbf7ffbe0) at
> pthread.c:1084
> #2 0x40393790 in __pthread_alt_lock (lock=0x8105498, self=0xbf7ffbe0) at
> restart.h:34
> #3 0x40390984 in __pthread_mutex_lock (mutex=0x8105488) at mutex.c:120
> #4 0x080ae6b3 in segv_redirect (sig=1) at main.c:80
> #5 0x4039575a in __pthread_sighandler (signo=11, ctx=
> {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0,
> edi = 128, esi = 185467032, ebp = 3212834404, esp = 3212834380, ebx = 1076058104,
> edx = 256, ecx = 1, eax = 2, trapno = 14, err = 6, eip = 1076016724, cs = 35, __csh
> = 0, eflags = 66050, esp_at_signal = 3212834380, ss = 43, __ssh = 0, fpstate =
> 0xbf7ff3d0, oldmask = 2147483648, cr2 = 185467032}) at sighandler.c:38
> #6 <signal handler called>
> #7 e_mempool_new (blocksize=141266760, threshold=128, flags=139996672) at
> e-memory.c:420
> #8 0x4007c6fd in camel_text_index_name_init (idn=0x86b8f48) at
> camel-text-index.c:1501
> #9 0x400661e5 in camel_object_init (o=0x86b8f48, klass=0x8665ef8, type=0x8665ef8)
> at camel-object.c:380
> #10 0x40066261 in camel_object_new (type=0x8665ef8) at camel-object.c:406
> #11 0x4007c7ce in camel_text_index_name_new (idx=0x4130f560, name=0x8408f6a
> "1046689793.22055_4923.devil", nameid=134932076) at camel-text-index.c:1538
> #12 0x4007b407 in text_index_add_name (idx=0x4130f560, name=0x8408f6a
> "1046689793.22055_4923.devil") at camel-text-index.c:617
> #13 0x40052528 in camel_index_add_name (idx=0x411a9020, name=0x8408f6a
> "1046689793.22055_4923.devil") at camel-index.c:185
> #14 0x40046850 in camel_folder_summary_info_new_from_parser (s=0x820e288,
> mp=0x86347d0) at camel-folder-summary.c:932
> #15 0x400466f5 in camel_folder_summary_add_from_parser (s=0x820e288, mp=0x86347d0)
> at camel-folder-summary.c:843
> #16 0x412f53d0 in camel_maildir_summary_add (cls=0x820e288, name=0x41a1d993
> "1046689793.22055_4923.devil:2,", forceindex=0) at camel-maildir-summary.c:478
> #17 0x412f5731 in maildir_summary_check (cls=0x820e288, changes=0x81c8490,
> ex=0x86aa2b0) at camel-maildir-summary.c:605
> #18 0x412eded3 in camel_local_summary_check (cls=0x820e288, changeinfo=0x81c8490,
> ex=0x86aa2b0) at camel-local-summary.c:257
> #19 0x412f5ad2 in maildir_summary_sync (cls=0x820e288, expunge=0, changes=0x81c8490,
> ex=0x86aa2b0) at camel-maildir-summary.c:726
> #20 0x412edf16 in camel_local_summary_sync (cls=0x820e288, expunge=0,
> changeinfo=0x81c8490, ex=0x86aa2b0) at camel-local-summary.c:286
> #21 0x412ecca6 in local_sync (folder=0x81b6b48, expunge=0, ex=0x86aa2b0) at
> camel-local-folder.c:420
> #22 0x4004ae39 in camel_folder_sync (folder=0x81b6b48, expunge=0, ex=0x86aa2b0) at
> camel-folder.c:279
> #23 0x0809e590 in mlf_sync (folder=0x81b6b48, expunge=0, ex=0x86aa2b0) at
> mail-local.c:260
> #24 0x4004ae39 in camel_folder_sync (folder=0x41314f78, expunge=0, ex=0x86aa2b0) at
> camel-folder.c:279
> #25 0x400825db in vee_sync (folder=0x81a9208, expunge=0, ex=0x86aa2b0) at
> camel-vee-folder.c:613
> #26 0x4004ae39 in camel_folder_sync (folder=0x81a9208, expunge=0, ex=0x86aa2b0) at
> camel-folder.c:279
> #27 0x080a4abf in sync_folder_sync (mm=0x411a9020) at mail-ops.c:1524
> #28 0x080a144f in mail_msg_received (e=0x814b8b8, msg=0x86aa298, data=0x0) at
> mail-mt.c:503
> #29 0x4022d1f6 in thread_received_msg (e=0x814b8b8, m=0x86aa298) at e-msgport.c:617
> #30 0x4022d2f1 in thread_dispatch (din=0x814b8b8) at e-msgport.c:698
> #31 0x4038fd53 in pthread_start_thread (arg=0xbf7ffbe0) at manager.c:300
>
> Thread 2 (Thread 32769 (LWP 1891)):
> #0 0x411582c0 in *__GI___poll (fds=0x81752a4, nfds=1, timeout=201) at
> ../sysdeps/unix/sysv/linux/poll.c:63
> #1 0x4038fa8e in __pthread_manager (arg=0xc9) at manager.c:145
>
> Thread 1 (Thread 16384 (LWP 1847)):
> #0 0x410c2ae2 in *__GI___sigsuspend (set=0x411a9020) at
> ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> #1 0x40391f35 in __pthread_wait_for_restart_signal (self=0x40396080) at
> pthread.c:1084
> #2 0x40393790 in __pthread_alt_lock (lock=0x411a9cf0, self=0x40396080) at
> restart.h:34
> #3 0x40390984 in __pthread_mutex_lock (mutex=0x411a9ce0) at mutex.c:120
> #4 0x41103000 in ptmalloc_lock_all () at arena.c:222
> #5 0x40391047 in __fork () at ptfork.c:74
> #6 0x40bd79fc in gnome_init () from /usr/lib/libgnomeui.so.32
> #7 0x080ae6d6 in segv_redirect (sig=-1073746004) at main.c:71
> #8 0x4039575a in __pthread_sighandler (signo=11, ctx=
> {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0,
> edi = 1092263136, esi = 142184952, ebp = 3221222104, esp = 3221222064, ebx =
> 1092259872, edx = 1092263196, ecx = 1092263136, eax = 142184992, trapno = 0, err =
> 0, eip = 1091588810, cs = 35, __csh = 0, eflags = 2097670, esp_at_signal =
> 3221222064, ss = 43, __ssh = 0, fpstate = 0xbffff030, oldmask = 2147483648, cr2 =
> 0}) at sighandler.c:38
> #9 <signal handler called>
> #10 __libc_free (mem=0x87991f8) at malloc.c:3345
> #11 0x40f966fb in g_free (mem=0x87991f8) at gmem.c:411
> #12 0x405b171d in e_tree_sorted_node_resorted () from /usr/lib/libgal.so.21
> #13 0x405b1eb6 in e_tree_sorted_node_resorted () from /usr/lib/libgal.so.21
> #14 0x405b1f05 in e_tree_sorted_node_resorted () from /usr/lib/libgal.so.21
> #15 0x405b1f05 in e_tree_sorted_node_resorted () from /usr/lib/libgal.so.21
> #16 0x405b1f05 in e_tree_sorted_node_resorted () from /usr/lib/libgal.so.21
> #17 0x405b277e in e_tree_table_adapter_get_type () from /usr/lib/libgal.so.21
> #18 0x40eb9043 in gtk_marshal_NONE__POINTER (object=0x855eee8, func=0x405b2728
> <e_tree_table_adapter_get_type+196>, func_data=0x81aad78, args=0xbffff538)
> at gtkmarshal.c:193
> #19 0x40ee8b6c in gtk_handlers_run (handlers=0x84fe0e0, signal=0xbffff4e4,
> object=0x855eee8, params=0xbffff538, after=0) at gtksignal.c:1917
> #20 0x40ee7fd5 in gtk_signal_real_emit (object=0x855eee8, signal_id=136,
> params=0xbffff538) at gtksignal.c:1477
> #21 0x40ee60b3 in gtk_signal_emit (object=0x855eee8, signal_id=136) at
> gtksignal.c:552
> #22 0x405aa535 in e_tree_model_node_changed () from /usr/lib/libgal.so.21
> #23 0x405af95e in e_tree_selection_model_get_type () from /usr/lib/libgal.so.21
> #24 0x405af0f1 in e_tree_selection_model_get_type () from /usr/lib/libgal.so.21
> #25 0x40f964ea in g_idle_dispatch (source_data=0x405af094, dispatch_time=0xbffff920,
> user_data=0x855eee8) at gmain.c:1367
> #26 0x40f954c8 in g_main_dispatch (dispatch_time=0xbffff920) at gmain.c:656
> #27 0x40f95ad3 in g_main_iterate (block=1, dispatch=1) at gmain.c:877
> #28 0x40f95c6c in g_main_run (loop=0x814ef00) at gmain.c:935
> #29 0x40eb77f7 in gtk_main () at gtkmain.c:524
> #30 0x404f8ecd in bonobo_main () from /usr/lib/libbonobo.so.2
> #31 0x080ae84c in main (argc=-1073743020, argv=0x80f8a35) at main.c:160
> 0x411582c0 63 in ../sysdeps/unix/sysv/linux/poll.c
> (gdb) t 3
> [Switching to thread 3 (Thread 16386 (LWP 1892))]#0 0x410c2ae2 in
> *__GI___sigsuspend (set=0x411a9020) at ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> 45 ../sysdeps/unix/sysv/linux/sigsuspend.c: No such file or directory.
> in ../sysdeps/unix/sysv/linux/sigsuspend.c
> (gdb) f 7
> #7 e_mempool_new (blocksize=141266760, threshold=128, flags=139996672) at
> e-memory.c:420
> 420 pool->blocksize = blocksize;
> (gdb) up
> #8 0x4007c6fd in camel_text_index_name_init (idn=0x86b8f48) at
> camel-text-index.c:1501
> 1501 p->pool = e_mempool_new(256, 128, E_MEMPOOL_ALIGN_BYTE);
> (gdb) do
> #7 e_mempool_new (blocksize=141266760, threshold=128, flags=139996672) at
> e-memory.c:420
> 420 pool->blocksize = blocksize;
> (gdb) list
> 415 #ifdef G_THREADS_ENABLED
> 416 g_static_mutex_unlock(&mempool_mutex);
> 417 #endif
> 418 if (threshold >= blocksize)
> 419 threshold = blocksize * 2 / 3;
> 420 pool->blocksize = blocksize;
> 421 pool->threshold = threshold;
> 422 pool->blocks = NULL;
> 423 pool->threshold_blocks = NULL;
> 424
> (gdb) p mempool_mutex
> $1 = {runtime_mutex = 0x0, aligned_pad_u = {pad = '\0' <repeats 23 times>,
> dummy_double = 0, dummy_pointer = 0x0, dummy_long = 0}}
> (gdb) list 380
> 375
> 376 /* a pool of mempool header blocks */
> 377 static MemChunk *mempool_memchunk;
> 378 #ifdef G_THREADS_ENABLED
> 379 static GStaticMutex mempool_mutex = G_STATIC_MUTEX_INIT;
> 380 #endif
> 381
> 382 /**
> 383 * e_mempool_new:
> 384 * @blocksize: The base blocksize to use for all system alocations.
> (gdb)
> 385 * @threshold: If the allocation exceeds the threshold, then it is
> 386 * allocated separately and stored in a separate list.
> 387 * @flags: Alignment options: E_MEMPOOL_ALIGN_STRUCT uses native
> 388 * struct alignment, E_MEMPOOL_ALIGN_WORD aligns to 16 bits (2 bytes),
> 389 * and E_MEMPOOL_ALIGN_BYTE aligns to the nearest byte. The default
> 390 * is to align to native structures.
> 391 *
> 392 * Create a new mempool header. Mempools can be used to efficiently
> 393 * allocate data which can then be freed as a whole.
> 394 *
> (gdb)
> 395 * Mempools can also be used to efficiently allocate arbitrarily
> 396 * aligned data (such as strings) without incurring the space overhead
> 397 * of aligning each allocation (which is not required for strings).
> 398 *
> 399 * However, each allocation cannot be freed individually, only all
> 400 * or nothing.
> 401 *
> 402 * Return value:
> 403 **/
> 404 MemPool *e_mempool_new(int blocksize, int threshold, EMemPoolFlags flags)
> (gdb)
> 405 {
> 406 MemPool *pool;
> 407
> 408 #ifdef G_THREADS_ENABLED
> 409 g_static_mutex_lock(&mempool_mutex);
> 410 #endif
> 411 if (mempool_memchunk == NULL) {
> 412 mempool_memchunk = e_memchunk_new(8, sizeof(MemPool));
> 413 }
> 414 pool = e_memchunk_alloc(mempool_memchunk);
> (gdb) info local
> pool = (MemPool *) 0xb0e0098
> (gdb) p *pool
> Cannot access memory at address 0xb0e0098
> (gdb) info args
> blocksize = 141266760
> threshold = 128
> flags = 139996672
>
>
> _______________________________________________
> evolution maillist - [EMAIL PROTECTED]
> http://lists.ximian.com/mailman/listinfo/evolution
_______________________________________________
evolution maillist - [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/evolution