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 602102 - [regression] evolution-alarm-notify segv on login to desktop
[regression] evolution-alarm-notify segv on login to desktop
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
2.30.x (obsolete)
Other Linux
: Normal blocker
: ---
Assigned To: Chenthill P
Evolution QA team
evolution[dbus]
: 601519 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-11-16 15:02 UTC by Ritesh Khadgaray ( irc:ritz)
Modified: 2013-09-13 01:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test patch (740 bytes, patch)
2009-11-16 19:25 UTC, Chenthill P
none Details | Review
Another test patch to narrow down. (525 bytes, patch)
2009-11-16 19:36 UTC, Chenthill P
none Details | Review

Description Ritesh Khadgaray ( irc:ritz) 2009-11-16 15:02:46 UTC
Debuginfo absent: 04afb15df1968743ce7263ace2a0137238b8ec9c
Debuginfo absent: 8990df6ba4bf0581d51f774e373424d8ab4d35aa
Debuginfo absent: d7cd8e4f4700f9cf481d01cb1dccebfc7179e131
Debuginfo absent: d8cec23e7291ee7581292a3a0589cb0f5f0e876d
[New Thread 2219]
[New Thread 2218]
Core was generated by `evolution-alarm-notify'.
Program terminated with signal 11, Segmentation fault.

Thread 3 (Thread 2218)

  • #0 close
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 _dbus_close
    at dbus-sysdeps-unix.c line 2672
  • #2 socket_disconnect
    at dbus-transport-socket.c line 930
  • #3 _dbus_transport_disconnect
    at dbus-transport.c line 494
  • #4 _dbus_transport_queue_messages
    at dbus-transport.c line 1137
  • #5 _dbus_connection_get_dispatch_status_unlocked
    at dbus-connection.c line 4021
  • #6 _dbus_connection_block_pending_call
    at dbus-connection.c line 2295
  • #7 dbus_g_proxy_end_call_internal
    at dbus-gproxy.c line 2272
  • #8 dbus_g_proxy_call
    at dbus-gproxy.c line 2601
  • #9 e_cal_view_start
    from /usr/lib64/libecal-1.2.so.7
  • #10 load_alarms
    at alarm-queue.c line 552
  • #11 load_alarms_for_today
    at alarm-queue.c line 578
  • #12 alarm_queue_add_async
    at alarm-queue.c line 1977
  • #13 g_thread_pool_thread_proxy
    at gthreadpool.c line 265
  • #14 g_thread_create_proxy
    at gthread.c line 635
  • #15 start_thread
    at pthread_create.c line 297
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #17 ??

Thread 1 (Thread 1909)

  • #0 _dbus_watch_invalidate
    at dbus-watch.c line 153
  • #1 free_watches
    at dbus-transport-socket.c line 82
  • #2 socket_disconnect
    at dbus-transport-socket.c line 928
  • #3 _dbus_transport_disconnect
    at dbus-transport.c line 494
  • #4 _dbus_transport_queue_messages
    at dbus-transport.c line 1137
  • #5 do_reading
    at dbus-transport-socket.c line 792
  • #6 socket_handle_watch
    at dbus-transport-socket.c line 873
  • #7 _dbus_transport_handle_watch
    at dbus-transport.c line 865
  • #8 _dbus_connection_handle_watch
    at dbus-connection.c line 1440
  • #9 dbus_watch_handle
    at dbus-watch.c line 669
  • #10 io_handler_dispatch
    at dbus-gmain.c line 232
  • #11 g_main_dispatch
    at gmain.c line 1960
  • #12 IA__g_main_context_dispatch
    at gmain.c line 2513
  • #13 g_main_context_iterate
    at gmain.c line 2591
  • #14 IA__g_main_loop_run
    at gmain.c line 2799
  • #15 IA__gtk_main
    at gtkmain.c line 1218
  • #16 main
    at notify-main.c line 78



probably related to
https://bugzilla.gnome.org/show_bug.cgi?id=601905
https://bugzilla.gnome.org/show_bug.cgi?id=602058
Comment 1 Milan Crha 2009-11-16 16:45:50 UTC
Chen, this is the other instance of crashing alarm notify. I saw this too, but only once or so. See the thread 1 had received a dbus notification, but thread 3 is playing with dbus in the same time. The locks around evo calls to dbus cannot help here, as the receving thread is out of evo's control. I think.
Comment 2 Matthew Barnes 2009-11-16 17:58:09 UTC
We need to make evolution-alarm-notify single threaded.  There's no getting around that.  Add some async functions to the ECal API if necessary.  I'll try to look into this soon if no one else beats me to it.
Comment 3 Chenthill P 2009-11-16 18:33:43 UTC
I don see much thread usage in alarm though. There is only a single thread used afaics. A non-main thread was used instead of the glib main thread to avoid hangs when the response take a bit of time. 

Looks like we have a contention here between the non-main thread and main thread ?
Comment 4 Chenthill P 2009-11-16 19:25:38 UTC
Created attachment 147930 [details] [review]
test patch

Milan, can u test this patch. Just a test patch to see if its a contention between main/non-main threads. Would also need to check if it happens specifically with the signals..
Comment 5 Chenthill P 2009-11-16 19:36:19 UTC
Created attachment 147936 [details] [review]
Another test patch to narrow down.
Comment 6 Ritesh Khadgaray ( irc:ritz) 2009-11-18 05:13:36 UTC
I have not seen this crash since, I moved to 2.29.3 .
Comment 7 Milan Crha 2009-11-18 11:39:02 UTC
*** Bug 601519 has been marked as a duplicate of this bug. ***
Comment 8 Milan Crha 2009-11-18 11:41:08 UTC
With those test patches applied it works for me finally, just make it a nice patches, proper comments (if any), and let it not claim anything during compilation. As I noticed in the above duplicate bug, there might be a potential slowness, but it's definitely better to have the application running than having it crashed. Thus yes, please commit it as soon as you can.
Comment 9 Milan Crha 2009-11-23 10:25:40 UTC
Downstream bug report for the same:
https://bugzilla.redhat.com/show_bug.cgi?id=539727
Comment 10 Chenthill P 2009-11-25 11:38:53 UTC
Committed - dcaa53ca64b42dc7ad4f613ce10b186e4b4b9255 .