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 345609 - ClockApplet dies when trying to open the calendar
ClockApplet dies when trying to open the calendar
Status: RESOLVED OBSOLETE
Product: gnome-panel
Classification: Other
Component: clock
2.14.x
Other other
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 340815 344058 349536 351570 352963 356823 357455 360494 467607 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-06-21 22:34 UTC by alvherre
Modified: 2007-08-23 20:22 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Trivial patch so the clock doesn't crash. (2.06 KB, patch)
2006-06-26 23:35 UTC, alvherre
none Details | Review
screenshot of stuck ClockApplet in 2.14 (46.08 KB, image/png)
2007-06-15 16:17 UTC, alvherre
  Details

Description alvherre 2006-06-21 22:34:12 UTC
Distribution: Debian testing/unstable
Package: gnome-panel
Severity: normal
Version: GNOME2.14.2 unspecified
Gnome-Distributor: Debian
Synopsis: ClockApplet dies when trying to open the calendar
Bugzilla-Product: gnome-panel
Bugzilla-Component: clock applet
Bugzilla-Version: unspecified
BugBuddy-GnomeVersion: 2.0 (2.14.1)
Description:
Description of the crash:

ClockApplet crashes when I try to open a calendar app to enter some
appointments.

Steps to reproduce the crash:
1. Click on the clock applet, the calendar window appears showing the
current month
2. Double click on a day.  The calendar window "empties" (it turns
white) 
3. Click on the white calendar window.  Crash.

Expected Results:

Some calendar application would show up and allow me to enter
appointments, etc.

How often does this happen?

Every time.

Additional Information:

I don't have Evolution installed, so maybe the applet is expecting to be
able to open Evolution and let it handle the task.  I don't know really
if there is any calendar application in Gnome besides Evolution.


Debugging Information:

Backtrace was generated from '/usr/libexec/ClockApplet'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1497037120 (LWP 31504)]
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1497037120 (LWP 31504))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 gnome_gtk_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 gtk_calendar_set_display_options
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 ??
  • #6 ??
  • #0 __kernel_vsyscall




------- Bug created by bug-buddy at 2006-06-21 22:34 -------

Comment 1 Elijah Newren 2006-06-22 05:05:18 UTC
Thanks for the bug report. Unfortunately, that stack trace is not very useful in determining the cause of the crash. Can you get us one with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so.
Comment 2 alvherre 2006-06-25 16:05:51 UTC
I tried; however I'm not sure how successful this was.  I installed the debug packages for glib, gtk+ and gnomeui, but the stack trace still shows "no debug symbols" at some points.  Can you tell me which other packages should I try to add debug symbols to?

This is the backtrace I currently get.  I note that there's a call to gtk_calendar_set_display_options with calendar=NULL, which is probably the cause of the crash.  I don't know what package is the one in the #5 and #6 frames though -- I think it must be gnome-panel, because I couldn't find a "-dbg" package for it.  Should I compile it from CVS?

Backtrace was generated from '/usr/libexec/ClockApplet'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1497016640 (LWP 5847)]
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1497016640 (LWP 5847))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 820
  • #3 <signal handler called>
  • #4 IA__gtk_calendar_set_display_options
    at gtkcalendar.c line 3167
  • #5 ??
  • #6 ??
  • #0 __kernel_vsyscall

Comment 3 alvherre 2006-06-25 16:42:09 UTC
I found instructions for building an unstripped Debian package.  In the process, the 2.14.1 panel got upgraded to 2.14.2, but it still crashes.  The backtrace I get is this:

Backtrace was generated from '/usr/libexec/ClockApplet'

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1496295744 (LWP 3619)]
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1496295744 (LWP 3619))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 820
  • #3 <signal handler called>
  • #4 IA__gtk_calendar_set_display_options
    at gtkcalendar.c line 3167
  • #5 update_popup
    at clock.c line 1437
  • #6 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #7 IA__g_closure_invoke
    at gclosure.c line 490
  • #8 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #9 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #10 IA__g_signal_emit
    at gsignal.c line 2241
  • #11 IA__gtk_toggle_button_toggled
    at gtktogglebutton.c line 342
  • #12 gtk_toggle_button_clicked
    at gtktogglebutton.c line 475
  • #13 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #14 g_type_class_meta_marshal
    at gclosure.c line 567
  • #15 IA__g_closure_invoke
    at gclosure.c line 490
  • #16 signal_emit_unlocked_R
    at gsignal.c line 2368
  • #17 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #18 IA__g_signal_emit
    at gsignal.c line 2241
  • #19 IA__gtk_button_clicked
    at gtkbutton.c line 845
  • #20 gtk_toggle_button_released
    at gtktogglebutton.c line 462
  • #21 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #22 g_type_class_meta_marshal
    at gclosure.c line 567
  • #23 IA__g_closure_invoke
    at gclosure.c line 490
  • #24 signal_emit_unlocked_R
    at gsignal.c line 2368
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #26 IA__g_signal_emit
    at gsignal.c line 2241
  • #27 IA__gtk_button_released
    at gtkbutton.c line 837
  • #28 gtk_button_button_release
    at gtkbutton.c line 1273
  • #29 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #30 g_type_class_meta_marshal
    at gclosure.c line 567
  • #31 IA__g_closure_invoke
    at gclosure.c line 490
  • #32 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #34 IA__g_signal_emit
    at gsignal.c line 2241
  • #35 gtk_widget_event_internal
    at gtkwidget.c line 3751
  • #36 IA__gtk_propagate_event
    at gtkmain.c line 2195
  • #37 IA__gtk_main_do_event
    at gtkmain.c line 1424
  • #38 gdk_event_dispatch
    at gdkevents-x11.c line 2291
  • #39 IA__g_main_context_dispatch
    at gmain.c line 1916
  • #40 g_main_context_iterate
    at gmain.c line 2547
  • #41 IA__g_main_loop_run
    at gmain.c line 2751
  • #42 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #43 bonobo_generic_factory_main_timeout
    from /usr/lib/libbonobo-2.so.0
  • #44 bonobo_generic_factory_main
    from /usr/lib/libbonobo-2.so.0
  • #45 panel_applet_factory_main_closure
    at panel-applet.c line 1757
  • #46 panel_applet_factory_main
    at panel-applet.c line 1781
  • #47 main
    at clock.c line 2780
  • #0 __kernel_vsyscall

Comment 4 alvherre 2006-06-25 16:53:18 UTC
Additional info -- attached to the process with GDB and got to the offending frame.  Displaying the "cd" argument shows the calendar being NULL.  The code in applets/clock/clock.c, lines 1430-1437 appears to be the culprit -- it never checks whether the pointer returned by gtk_calendar_new() is NULL.

The interesting thing would be, however, knowing _why_ gtk_calendar_new() is returning NULL ...

(gdb) frame 5
  • #5 update_popup
    at clock.c line 1437
$2 = {applet = 0x80bf800, clockw = 0x80d8818, toggle = 0x80db008, props = 0x0, about = 0x0, 
  calendar_popup = 0x0, calendar = 0x0, task_list = 0x0, appointment_list = 0x0, 
  appointments_model = 0x8118f10, tasks_model = 0x8118dd0, tasks_filter = 0x80914c0, client = 0x8154ba8, 
  format = CLOCK_FORMAT_24, custom_format = 0x80a9ed8 "", showseconds = 0, showdate = 1, gmt_time = 0, 
  showweek = 1, config_tool = 0x80a9758 "time-admin", current_time = 1151253516, 
  timeformat = 0x81233b0 "%a %e de %b, %H:%M", timeout = 16, orient = 1, size = 24, fixed_width = 136, 
  fixed_height = 17, showseconds_check = 0x0, showdate_check = 0x0, gmt_time_check = 0x0, custom_hbox = 0x0, 
  custom_label = 0x0, custom_entry = 0x0, custom_format_shown = 0, can_handle_format_12 = 0, listeners = {
    654311428, 671088645, 687865862, 704643079, 721420296, 738197513, 754974730}}
(gdb) list 1430,1437
1430            cd->calendar = gtk_calendar_new ();
1431            g_object_add_weak_pointer (G_OBJECT (cd->calendar),
1432                                       (gpointer *) &cd->calendar);
1433
1434            options = gtk_calendar_get_display_options (GTK_CALENDAR (cd->calendar));
1435            if (cd->showweek)
1436                    options |= GTK_CALENDAR_SHOW_WEEK_NUMBERS;
1437            gtk_calendar_set_display_options (GTK_CALENDAR (cd->calendar), options);
Comment 5 alvherre 2006-06-26 23:34:52 UTC
A trivial patch from someone totally unfamiliar with Gtk/Gnome development.  At least with this patch, the clock doesn't crash.  However, after the bug is triggered, the calendar will no longer be shown, and instead it'll show an annoying dialog box.  There doesn't seem to be a way for gtk_calendar_new() to return to a sane state.
Comment 6 alvherre 2006-06-26 23:35:42 UTC
Created attachment 68055 [details] [review]
Trivial patch so the clock doesn't crash.
Comment 7 Jan de Groot 2006-07-10 06:39:32 UTC
http://bugzilla.gnome.org/show_bug.cgi?id=340622 looks related to me, I can't reproduce the problem after applying the patch in that bugreport.
Comment 8 Elijah Newren 2006-07-10 14:52:48 UTC
*** Bug 340815 has been marked as a duplicate of this bug. ***
Comment 9 Karsten Bräckelmann 2006-08-01 13:53:10 UTC
*** Bug 349536 has been marked as a duplicate of this bug. ***
Comment 10 Teppo Turtiainen 2006-08-16 14:50:29 UTC
*** Bug 351570 has been marked as a duplicate of this bug. ***
Comment 11 Sergej Kotliar 2006-08-27 13:03:52 UTC
*** Bug 352963 has been marked as a duplicate of this bug. ***
Comment 12 Karsten Bräckelmann 2006-09-20 01:50:18 UTC
*** Bug 356823 has been marked as a duplicate of this bug. ***
Comment 13 Fabio Bonelli 2006-09-24 17:54:08 UTC
*** Bug 357455 has been marked as a duplicate of this bug. ***
Comment 14 Elijah Newren 2006-10-07 21:26:08 UTC
*** Bug 360494 has been marked as a duplicate of this bug. ***
Comment 15 Vincent Untz 2007-01-14 23:39:28 UTC
Patch is not okay: gtk_calendar_new() should not fail and really, there's no reason for it to fail, so that's what we'd need to investigate.

Looking at all the bug reports, they're all from Debian/Ubuntu and from GNOME 2.14.x. Can someone still reproduce? This might have been caused by some Debian patch in GTK+ or gnome-panel making things crash in the 2.14.x version...

Marking as NEEDINFO and waiting for a 2.16 (or more recent) crash. I'm also interested in knowing if it's still crashing now in Debian with 2.14.
Comment 16 alvherre 2007-01-15 00:53:24 UTC
Did I mention that Evolution is supposed not to be installed?

I don't have 2.16 handy, so I can't test that.

I'm currently using gnome-panel 2.14.3-4 (which is stock Debian Etch AFAICT) and it doesn't crash anymore, but once the calendar pops up it never goes away if I double-click on a day.  One interesting thing to note is that as soon as I force a redraw of the calendar widget, it stays blank, so I assume the involved process is stuck.  (Since it's a "keep on top" window, it's hard to do this by normal means, so what I did was to change to another VT and then back to this X session).


More info: attaching with GDB to the process before it dies, and then redoing the crash actions leads to this stack trace:

Program received signal SIGABRT, Aborted.
0x00002aee2285f07b in raise () from /lib/libc.so.6
(gdb) bt
  • #0 raise
    from /lib/libc.so.6
  • #1 abort
    from /lib/libc.so.6
  • #2 __fsetlocking
    from /lib/libc.so.6
  • #3 mallopt
    from /lib/libc.so.6
  • #4 free
    from /lib/libc.so.6
  • #5 g_error_free
    from /usr/lib/libglib-2.0.so.0
  • #6 ??
  • #7 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #11 gtk_calendar_select_month
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #17 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #18 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 _gdk_events_init
    from /usr/lib/libgdk-x11-2.0.so.0
  • #21 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #22 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #23 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #24 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #25 bonobo_generic_factory_main_timeout
    from /usr/lib/libbonobo-2.so.0
  • #26 panel_applet_factory_main_closure
    from /usr/lib/libpanel-applet-2.so.0
  • #27 ??
  • #28 __libc_start_main
    from /lib/libc.so.6
  • #29 ??
  • #30 ??
  • #31 ??

Comment 17 Vincent Untz 2007-05-16 23:18:00 UTC
*** Bug 344058 has been marked as a duplicate of this bug. ***
Comment 18 Vincent Untz 2007-05-16 23:19:26 UTC
I've still not seen a crash report for this bug in 2.16/2.18.
Comment 19 Vincent Untz 2007-06-15 15:55:44 UTC
Closing since there's no recent report of this crash. If you can still reproduce with 2.16/2.18, please reopen.
Comment 20 alvherre 2007-06-15 16:17:37 UTC
Created attachment 90023 [details]
screenshot of stuck ClockApplet in 2.14
Comment 21 alvherre 2007-06-15 16:18:05 UTC
Oh good!  So nobody knows whether it was fixed or not, but the developers were too busy to try the test case for themselves.  Way to go!

Since you have the sources you could verify whether the code still stands as it was -- it was clearly buggy when I looked at it.  I don't understand the attitude of dropping the bug in the floor without taking any action about it.

I am attaching a screenshot of the applet stuck as I described in comment #16.  This is still 2.14 (Debian Lenny package).
Comment 22 alvherre 2007-06-15 16:27:11 UTC
I went to check the code in http://svn.gnome.org/viewcvs/gnome-panel/trunk/applets/clock/clock.c?revision=10459&view=markup
and I see that in create_calendar() there is no check at all about the return value from calendar_window_new being NULL.  So it very much looks like the bug has not been fixed, but I don't have any experience with the Gnome code or GTK+ programming.

On the other hand I don't see calendar_window_init being called anywhere in any case, so there's probably code being executed somewhere I am not seeing.
Comment 23 Vincent Untz 2007-06-15 16:41:22 UTC
First, it'd be great if you could use two minutes to take a look at http://live.gnome.org/CodeOfConduct

(In reply to comment #21)
> Oh good!  So nobody knows whether it was fixed or not, but the developers were
> too busy to try the test case for themselves.  Way to go!

I'm sorry, but it seems you don't realize how busy we are and how much of our free time we're giving only to triage bugs (I'm not talking about fixing bugs, but really about triaging). You also appear to think that I'm closing the bug without having tried to reproduce it in more recent versions of GNOME, which is wrong since I tried.

> Since you have the sources you could verify whether the code still stands as it
> was -- it was clearly buggy when I looked at it.

Did you read comment #15 about the patch you proposed? There is no obvious error here in the code.

> I don't understand the attitude of dropping the bug in the floor without taking
> any action about it.

Everything is telling me the bug only appears in 2.14 which is not maintained anymore. I've tried to reproduce the bug, I've asked if it still happens in 2.16 or 2.18 and nobody replied to this. What else should I do?
Comment 24 Vincent Untz 2007-06-15 16:43:41 UTC
(In reply to comment #22)
> I went to check the code in
> http://svn.gnome.org/viewcvs/gnome-panel/trunk/applets/clock/clock.c?revision=10459&view=markup
> and I see that in create_calendar() there is no check at all about the return
> value from calendar_window_new being NULL.  So it very much looks like the bug
> has not been fixed, but I don't have any experience with the Gnome code or GTK+
> programming.

calendar_window_new() does never return NULL.

> On the other hand I don't see calendar_window_init being called anywhere in any
> case, so there's probably code being executed somewhere I am not seeing.

Yes, calendar_window_init() is being called during the object creation (ie, in g_object_new()).
Comment 25 Susana 2007-08-23 20:22:26 UTC
*** Bug 467607 has been marked as a duplicate of this bug. ***