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 692371 - [abrt] Crash under e_mapi_connection_connected()
[abrt] Crash under e_mapi_connection_connected()
Status: RESOLVED FIXED
Product: evolution-mapi
Classification: Applications
Component: miscellaneous
3.6.x
Other Linux
: Normal critical
: ---
Assigned To: evolution-mapi-maint
evolution-mapi-maint
Depends on:
Blocks:
 
 
Reported: 2013-01-23 10:49 UTC by Milan Crha
Modified: 2013-01-23 12:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ema patch (1.87 KB, patch)
2013-01-23 12:05 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2013-01-23 10:49:58 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=903045

Description of problem:
Started up evolution and let it sync with exchange.  

Version-Release number of selected component:
evolution-data-server-3.6.2-3.fc18

Additional info:
backtrace_rating: 4
cmdline:        /usr/libexec/evolution-calendar-factory
crash_function: tdb_nest_lock
executable:     /usr/libexec/evolution-calendar-factory
kernel:         3.7.2-204.fc18.x86_64

Core was generated by `/usr/libexec/evolution-calendar-factory'.
Program terminated with signal 6, Aborted.

Thread 10 (Thread 0x7f8daeffd700 (LWP 25995))

  • #0 __read_nocancel
    at ../sysdeps/unix/syscall-template.S line 81
  • #1 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 189
  • #2 malloc_printerr
  • #3 _int_realloc
    at malloc.c line 4221
  • #4 __GI___libc_realloc
    at malloc.c line 2999
  • #5 tdb_nest_lock
    at ../common/lock.c line 281
  • #6 tdb_nest_lock
    at ../common/lock.c line 257
  • #7 tdb_lock_list
    at ../common/lock.c line 355
  • #8 tdb_lock
    at ../common/lock.c line 374
  • #9 tdb_next_lock
    at ../common/traverse.c line 76
  • #10 tdb_traverse_internal
    at ../common/traverse.c line 161
  • #11 tdb_traverse_read
    at ../common/traverse.c line 229
  • #12 ltdb_search_full
    at ../ldb_tdb/ldb_search.c line 502
  • #13 ltdb_search
    at ../ldb_tdb/ldb_search.c line 629
  • #14 ltdb_callback
    at ../ldb_tdb/ldb_tdb.c line 1358
  • #15 tevent_common_loop_timer_delay
    at ../tevent_timed.c line 254
  • #16 std_event_loop_once
    at ../tevent_standard.c line 560
  • #17 _tevent_loop_once
    at ../tevent.c line 507
  • #18 ldb_wait
    at ../common/ldb.c line 616
  • #19 ldb_wait
    at ../common/ldb.c line 569
  • #20 ldb_search
  • #21 ldb_load_profile
    at libmapi/IProfAdmin.c line 56
  • #22 OpenProfile
    at libmapi/IProfAdmin.c line 713
  • #23 e_mapi_connection_connected
    at e-mapi-connection.c line 762
  • #24 ecbm_connect_user
    at e-cal-backend-mapi.c line 1287
  • #25 source_registry_authenticate_authenticate_cb
    at e-source-registry.c line 1521
  • #26 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #27 ffi_call
    at ../src/x86/ffi64.c line 486
  • #28 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #29 g_closure_invoke
    at gclosure.c line 777
  • #30 signal_emit_unlocked_R
    at gsignal.c line 3551
  • #31 g_signal_emitv
    at gsignal.c line 3041
  • #32 e_dbus_authenticator_proxy_g_signal
    at e-dbus-authenticator.c line 1049
  • #33 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #34 ffi_call
    at ../src/x86/ffi64.c line 486
  • #35 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #36 g_closure_invoke
    at gclosure.c line 777
  • #37 signal_emit_unlocked_R
    at gsignal.c line 3589
  • #38 g_signal_emit_valist
    at gsignal.c line 3300
  • #39 g_signal_emit
    at gsignal.c line 3356
  • #40 on_signal_received
    at gdbusproxy.c line 927
  • #41 emit_signal_instance_in_idle_cb
    at gdbusconnection.c line 3715
  • #42 g_main_dispatch
    at gmain.c line 2715
  • #43 g_main_context_dispatch
    at gmain.c line 3219
  • #44 g_main_context_iterate
    at gmain.c line 3290
  • #45 g_main_loop_run
    at gmain.c line 3484
  • #46 e_source_registry_authenticate_sync
    at e-source-registry.c line 1724
  • #47 e_cal_backend_mapi_ensure_connected
    at e-cal-backend-mapi.c line 1324
  • #48 ecbm_open
    at e-cal-backend-mapi.c line 1470
  • #49 ecbm_operation_cb
    at e-cal-backend-mapi.c line 2799
  • #50 thread_func_cb
    at e-mapi-operation-queue.c line 144
  • #51 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #52 g_thread_proxy
    at gthread.c line 797
  • #53 start_thread
    at pthread_create.c line 308
  • #54 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 114

Thread 4 (Thread 0x7f8dd7706800 (LWP 25970))

  • #0 poll
    at ../sysdeps/unix/syscall-template.S line 81
  • #1 g_main_context_poll
    at gmain.c line 3584
  • #2 g_main_context_iterate
    at gmain.c line 3285
  • #3 g_main_loop_run
    at gmain.c line 3484
  • #4 dbus_server_run_server
    at e-dbus-server.c line 222
  • #5 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #6 ffi_call
    at ../src/x86/ffi64.c line 486
  • #7 g_cclosure_marshal_generic_va
    at gclosure.c line 1550
  • #8 _g_closure_invoke_va
    at gclosure.c line 840
  • #9 g_signal_emit_valist
    at gsignal.c line 3211
  • #10 g_signal_emit
    at gsignal.c line 3356
  • #11 e_dbus_server_run
    at e-dbus-server.c line 396
  • #12 main
    at evolution-calendar-factory.c line 137

Thread 1 (Thread 0x7f8d93fff700 (LWP 26001))

  • #0 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 63
  • #1 __GI_abort
    at abort.c line 90
  • #2 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 197
  • #3 malloc_printerr
  • #4 _int_realloc
    at malloc.c line 4221
  • #5 __GI___libc_realloc
    at malloc.c line 2999
  • #6 tdb_nest_lock
    at ../common/lock.c line 281
  • #7 tdb_nest_lock
    at ../common/lock.c line 257
  • #8 tdb_lock_list
    at ../common/lock.c line 355
  • #9 tdb_lock
    at ../common/lock.c line 374
  • #10 tdb_find_lock_hash
    at ../common/tdb.c line 118
  • #11 tdb_parse_record
    at ../common/tdb.c line 245
  • #12 ltdb_search_dn1
    at ../ldb_tdb/ldb_search.c line 286
  • #13 ltdb_cache_load
    at ../ldb_tdb/ldb_cache.c line 344
  • #14 ltdb_connect
    at ../ldb_tdb/ldb_tdb.c line 1577
  • #15 ldb_module_connect_backend
    at ../common/ldb_modules.c line 217
  • #16 ldb_connect
    at ../common/ldb.c line 251
  • #17 OpenProfileStore
    at libmapi/IProfAdmin.c line 563
  • #18 MAPIInitialize
    at libmapi/cdo_mapi.c line 247
  • #19 e_mapi_utils_create_mapi_context
    at e-mapi-utils.c line 1109
  • #20 e_mapi_connection_new
    at e-mapi-connection.c line 603
  • #21 ecbm_connect_user
    at e-cal-backend-mapi.c line 1225
  • #22 source_registry_authenticate_authenticate_cb
    at e-source-registry.c line 1521
  • #23 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #24 ffi_call
    at ../src/x86/ffi64.c line 486
  • #25 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #26 g_closure_invoke
    at gclosure.c line 777
  • #27 signal_emit_unlocked_R
    at gsignal.c line 3551
  • #28 g_signal_emitv
    at gsignal.c line 3041
  • #29 e_dbus_authenticator_proxy_g_signal
    at e-dbus-authenticator.c line 1049
  • #30 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #31 ffi_call
    at ../src/x86/ffi64.c line 486
  • #32 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #33 g_closure_invoke
    at gclosure.c line 777
  • #34 signal_emit_unlocked_R
    at gsignal.c line 3589
  • #35 g_signal_emit_valist
    at gsignal.c line 3300
  • #36 g_signal_emit
    at gsignal.c line 3356
  • #37 on_signal_received
    at gdbusproxy.c line 927
  • #38 emit_signal_instance_in_idle_cb
    at gdbusconnection.c line 3715
  • #39 g_main_dispatch
    at gmain.c line 2715
  • #40 g_main_context_dispatch
    at gmain.c line 3219
  • #41 g_main_context_iterate
    at gmain.c line 3290
  • #42 g_main_loop_run
    at gmain.c line 3484
  • #43 e_source_registry_authenticate_sync
    at e-source-registry.c line 1724
  • #44 e_cal_backend_mapi_ensure_connected
    at e-cal-backend-mapi.c line 1324
  • #45 ecbm_open
    at e-cal-backend-mapi.c line 1470
  • #46 ecbm_operation_cb
    at e-cal-backend-mapi.c line 2799
  • #47 thread_func_cb
    at e-mapi-operation-queue.c line 144
  • #48 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #49 g_thread_proxy
    at gthread.c line 797
  • #50 start_thread
    at pthread_create.c line 308
  • #51 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 114

Comment 1 Milan Crha 2013-01-23 12:05:01 UTC
Created attachment 234180 [details] [review]
ema patch

for evolution-mapi;

It seems the reason for this was that the e_mapi_connection_connected() didn't use a lock when talking to a server, thus it clashed with the other thread, which was talking to the server too.
Comment 2 Milan Crha 2013-01-23 12:59:16 UTC
Created commit 7b98644 in ema master (3.7.5+)
Created commit d623ce5 in ema gnome-3-6 (3.6.4+)