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 323955 - Evolution will hang when trying to invoke alarm daemon
Evolution will hang when trying to invoke alarm daemon
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
2.4.x (obsolete)
Other Solaris
: High critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2005-12-13 08:32 UTC by Harry Lu
Modified: 2005-12-21 04:08 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12


Attachments
remove the mutex code and make the init_alarm_service a simple fn call (2.19 KB, patch)
2005-12-16 10:43 UTC, Chakravarthi
accepted-commit_now Details | Review

Description Harry Lu 2005-12-13 08:32:24 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.
Comment 1 Chenthill P 2005-12-14 11:53:17 UTC
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.
Comment 2 Harry Lu 2005-12-14 11:59:47 UTC
Thanks! We will have a try when the patch is ready.
Comment 3 Chakravarthi 2005-12-16 10:43:59 UTC
Created attachment 56063 [details] [review]
remove the mutex code and make the init_alarm_service a simple fn call
Comment 4 Harry Lu 2005-12-20 06:40:12 UTC
As we tested, this patch works fine on two machines which have the problem before. Thanks!
Comment 5 Chenthill P 2005-12-20 07:21:34 UTC
Please commit the patch to both gnome-2-12 and HEAD.
Comment 6 Chakravarthi 2005-12-21 04:08:43 UTC
committed to both gnome-2-12 and HEAD. closing the bug.