GNOME Bugzilla – Bug 323955
Evolution will hang when trying to invoke alarm daemon
Last modified: 2005-12-21 04:08:43 UTC
When start up evolution 2.4.2, it usually hangs there. Here is the stack of evolution: =>[1] __pollsys(0x8181820, 0x9, 0x0, 0x0), at 0xfe4989e7 [2] _pollsys(0x8181820, 0x9, 0x0, 0x0), at 0xfe48cc14 [3] _poll(0x8181820, 0x9, 0xffffffff), at 0xfe45b2e2 [4] g_main_context_iterate(0x80969c8, 0x1, 0x1, 0x807a328), at 0xfe51b17d [5] g_main_context_iteration(0x80969c8, 0x1), at 0xfe51b410 [6] link_main_iteration(0x1), at 0xfeb47226 [7] giop_recv_buffer_get(0x8047858), at 0xfeb2ccb3 [8] ORBit_small_invoke_stub(0x8175d70, 0xfebc07e0, 0x8047988, 0x804795c, 0x8094278, 0x8047aec), at 0xfeb30122 [9] ORBit_small_invoke_stub_n(0x8175d70, 0xfebc05fc, 0x7, 0x8047988, 0x804795c, 0x8094278, 0x8047aec), at 0xfeb2ffc7 [10] ORBit_c_stub_invoke(0x8175d70, 0xfebc05fc, 0x7, 0x8047988, 0x804795c, 0x8094278, 0x8047aec, 0x0, 0x20, 0xfeba717c), at 0xfeb41c4a [11] Bonobo_ActivationContext_activateMatchingFull(0x8175d70, 0x8047a30, 0x80479e0, 0xfebc1778, 0x0, 0x8181638, 0x8094278, 0x8047aec), at 0xfeba8e16 [12] bonobo_activation_activate(0x8047a30, 0x0, 0x0, 0x0, 0x8047aec), at 0xfebaa274 [13] bonobo_activation_activate_from_id(0xfb042d88, 0x0, 0x0, 0x8047aec), at 0xfebaa4ad [14] launch_alarm_daemon_cb(0x815fb28), at 0xfb00d357 [15] g_idle_dispatch(0x8145268, 0xfb00d30c, 0x815fb28), at 0xfe51cc57 [16] g_main_dispatch(0x8095b48), at 0xfe519ca4 [17] g_main_context_dispatch(0x8095b48), at 0xfe51ad95 [18] g_main_context_iterate(0x8095b48, 0x1, 0x1, 0x807a328), at 0xfe51b1b5 [19] g_main_loop_run(0x8140628), at 0xfe51b7ba [20] bonobo_main(0x8047e38, 0x8047dac, 0xfeffa840, 0x8047d8c, 0x8047ce0, 0x8047d50), at 0xfec3f462 [21] main(0x1, 0x8047df0, 0x8047df8), at 0x8062ea2 Here is the trace of evolution-alarm-notify: [1] __lwp_park(0x0, 0x0), at 0xfe617ffb [2] mutex_lock_queue(0xfcb42000, 0x0, 0x8074b00, 0x0), at 0xfe6107e2 [3] slow_lock(0xfcb42000, 0x8074b00, 0x0), at 0xfe6111b7 [4] mutex_lock_impl(0x8074b00, 0x0), at 0xfe6112fd [5] mutex_lock(0x8074b00), at 0xfe6113e0 [6] alarm_notify_factory_fn(0x80f25c0, 0x80f7b79, 0x0), at 0x805f5a7 [7] bonobo_marshal_OBJECT__STRING(0x80f2be8, 0x804716c, 0x2, 0x80f7bb8, 0x0, 0x0), at 0xfe8900a9 [8] g_closure_invoke(0x80f2be8, 0x804716c, 0x2, 0x80f7bb8, 0x0), at 0xfe7ca256 [9] bonobo_closure_invoke_va_list(0x80f2be8, 0x804716c, 0x8047254), at 0xfe891139 [10] bonobo_closure_invoke(0x80f2be8, 0x8094128, 0x8047270, 0x80f1e10, 0x80f25c0, 0x41, 0x80f7b79, 0x0), at 0xfe8913f5 [11] bonobo_generic_factory_new_generic(0x80f25c0, 0x80f7b79), at 0xfe87d67e [12] impl_Bonobo_ObjectFactory_createObject(0x80f25d4, 0x80f7b79, 0x804749c), at 0xfe87d23e [13] _ORBIT_skel_small_Bonobo_GenericFactory_createObject(0x80f25d4, 0x8047380, 0x8047370, 0x80473a0, 0x804749c, 0xfe87d144), at 0xfe786d7a [14] ORBit_POAObject_invoke(0x80f25f8, 0x8047380, 0x8047370, 0x80473a0, 0x8047428, 0x804749c), at 0xfe74d7f9 [15] ORBit_OAObject_invoke(0x80f25f8, 0x8047380, 0x8047370, 0x80473a0, 0x8047428, 0x804749c), at 0xfe751bc4 [16] ORBit_small_invoke_adaptor(0x80f25f8, 0x80f7a00, 0xfe7a0018, 0x8047428, 0x804749c), at 0xfe73f1f9 [17] ORBit_POAObject_handle_request(0x80f25f8, 0x80f7aac, 0x0, 0x0, 0x0, 0x80f7a00, 0x804749c), at 0xfe74dc40 [18] ORBit_POAObject_invoke_incoming_request(0x80f25f8, 0x80f7a00, 0x0), at 0xfe74e050 [19] giop_thread_queue_process(0x8076680, 0x0, 0xfe84f2f0, 0xfe772dd8, 0x8047584, 0xfe73ee48), at 0xfe739c7d [20] giop_recv_buffer_get(0x8047548), at 0xfe73ba71 [21] ORBit_small_invoke_stub(0x80e8840, 0xfe84f2f0, 0x0, 0x8047644, 0x0, 0x80476ac), at 0xfe73ee66 [22] ORBit_small_invoke_stub_n(0x80e8840, 0xfe84f290, 0x1, 0x0, 0x8047644, 0x0, 0x80476ac), at 0xfe73ed0b [23] ORBit_c_stub_invoke(0x80e8840, 0xfe84f290, 0x1, 0x0, 0x8047644, 0x0, 0x80476ac, 0x0, 0x8, 0xfe835824), at 0xfe75098e [24] ConfigDatabase2_all_entries_with_schema_name(0x80e8840, 0x8062c80, 0xfe647810, 0x80476e0, 0x80476e4, 0x80476dc, 0x80476e8, 0x80476ec, 0x80476ac), at 0xfe83842b [25] gconf_engine_all_entries(0x8079fb0, 0x8062c80, 0x8047720), at 0xfe82d574 [26] cache_pairs_in_dir(0x80e89c0, 0x8062c80), at 0xfe831fec [27] gconf_client_preload(0x80e89c0, 0x8062c80, 0x1, 0x8047798), at 0xfe8320c4 [28] gconf_client_add_dir(0x80e89c0, 0x8062c80, 0x1, 0x0), at 0xfe831580 [29] e_source_list_new_for_gconf(0x80e89c0, 0x8062c80), at 0xfe922dec [30] ensure_inited(0x8097754, 0x3, 0x8057f60, 0x8047808, 0x805d250, 0x3), at 0x805f28c [31] config_data_get_timezone(0x3, 0x804781c, 0x805ecd6, 0x804781c, 0x805ece3, 0x805c1be), at 0x805f2d1 [32] queue_midnight_refresh(0x805c1be, 0x80576a0, 0x8057690, 0x8047854, 0x805c1d1, 0x80f71b0), at 0x805d250 [33] alarm_queue_init(0x80f71b0, 0x0, 0xfe801f4c, 0x8, 0x80f71b0, 0x1), at 0x805ece3 [34] alarm_notify_init(0x80e7da0, 0x80f7228), at 0x805c1d1 [35] g_type_create_instance(0x80f71b0), at 0xfe7e2712 [36] g_object_constructor(0x80f71b0, 0x1, 0x80f4c60), at 0xfe7cd88f [37] bonobo_object_constructor(0x80f71b0, 0x1, 0x80f4c60), at 0xfe883eba [38] g_object_newv(0x80f71b0, 0x1, 0x80f76a0), at 0xfe7cce28 [39] g_object_new_valist(0x80f71b0, 0x8061e24, 0x8047ba4), at 0xfe7cd7dd [40] g_object_new(0x80f71b0, 0x8061e24, 0x80f72d0, 0x0), at 0xfe7cc9fa [41] alarm_notify_new(0xfe710eb0, 0x8047bd0, 0xfe6acc57, 0x0, 0xfe710eb0, 0x8047c58), at 0x805c464 [42] init_alarm_service(0x0), at 0x805f6d3 [43] g_idle_dispatch(0x80f51a8, 0x805f660, 0x0), at 0xfe6acc57 [44] g_main_dispatch(0x80919f8), at 0xfe6a9ca4 [45] g_main_context_dispatch(0x80919f8), at 0xfe6aad95 [46] g_main_context_iterate(0x80919f8, 0x1, 0x1, 0x80760b8), at 0xfe6ab1b5 [47] g_main_loop_run(0x80f4198), at 0xfe6ab7ba [48] bonobo_main(0x8047d1c, 0xfeffa840, 0xfeffa840, 0x8047d1c, 0x8047db0, 0x8047d54), at 0xfe87f462 [49] main(0x3, 0x8047d60, 0x8047d70), at 0x805f893 From the trace, it seemes hangs when trying to lock a static mutex in alarm_notify_factory_fn() since the mutex has been locked in init_alarm_service () It lookes related to patch for 271480. It always happenes for some machines, but NOT for other machines. Very strange.
The main loop is blocked. We tested it with several machines before committing the previous patch (271480), but did come across it. Chax is now working on it. Once he is done, patch would be attached to bugzilla, you can test it out.
Thanks! We will have a try when the patch is ready.
Created attachment 56063 [details] [review] remove the mutex code and make the init_alarm_service a simple fn call
As we tested, this patch works fine on two machines which have the problem before. Thanks!
Please commit the patch to both gnome-2-12 and HEAD.
committed to both gnome-2-12 and HEAD. closing the bug.