GNOME Bugzilla – Bug 698680
critical assertion: g_source_remove: assertion `tag > 0' failed
Last modified: 2013-04-23 23:11:21 UTC
I'm running Gnumeric from git master on Ubuntu 13.04 with libgtk 3.8.0 and glib 2.36.0. To see the problem: 1. Start Gnumeric from a terminal window. 2. Enter any value into the currently selected cell. 3. Press Enter to move to the next cell. You'll see this on the console: (gnumeric:30154): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed This assertion might be benign, but we should still find and fix it.
This is a critical within the glib binary. Please file it against glib.
Debugging reveals that the Gnumeric function item_edit_cursor_blink_stop is passing the invalid ID 0 to g_source_remove(): ==== static void item_edit_cursor_blink_stop (GnmItemEdit *ie) { if (ie->blink_timer != -1) { g_source_remove (ie->blink_timer); ... === ie->blink_timer is 0 at the moment of the call. g_source_remove issues the critical to indicate it's been passed an invalid argument: === gboolean g_source_remove (guint tag) { GSource *source; g_return_val_if_fail (tag > 0, FALSE); ... === So this is a bug in Gnumeric, not glib. A full stack trace is below.
+ Trace 231836
Hmm. Strange. I put a g_printerr in item_edit_cursor_blink_stop and I always see a positive tag.
Nevermind, I see it. It's theme/settings dependent in that it will only show up if gtk-cursor-blink is FALSE. This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.