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 550559 - v0.14.3 crashes when using zoom to fit
v0.14.3 crashes when using zoom to fit
Status: RESOLVED FIXED
Product: planner
Classification: Other
Component: General
0.14.x
Other All
: High critical
: ---
Assigned To: planner-maint
planner-maint
: 610333 632546 636195 644061 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-09-02 21:35 UTC by Frank Van Geirt
Modified: 2011-03-07 10:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
this makes it go away (651 bytes, patch)
2009-11-17 10:45 UTC, Caolan McNamara
rejected Details | Review

Description Frank Van Geirt 2008-09-02 21:35:12 UTC
Steps to reproduce:
1. Create 2 tasks
2. Links the tasks
3. Set the duration so that the tasks do not fit on the screen anymore
4. Use Zoom to Fit


Stack trace:


Other information:
Comment 1 Frank Van Geirt 2008-09-07 20:52:34 UTC
I do not get a stack trace, but I reproduced the bug by starting planner from the terminal.

I then get following error:

** (planner:2521): CRITICAL **: mrp_time2_add_seconds: assertion `secs >= 0' failed
Comment 2 André Klapper 2008-09-28 13:43:22 UTC
Thanks for taking the time to report this bug.
Without a stack trace from the crash it's very hard to determine what caused it.
Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 3 Erik van Pienbroek 2008-10-29 15:08:44 UTC
I can't reopen the bug, but I'm also having this problem. As soon as I press to 'zoom to fit' button, the program keeps hanging in an endless loop while the message '** (planner:5947): CRITICAL **: mrp_time2_add_seconds: assertion `secs >= 0' failed' is being printed in the console.

I took multiple stack traces as this appears to be and endless loop:

  • #0 __pthread_mutex_lock
    at pthread_mutex_lock.c line 43
  • #1 _xcb_lock_io
    from /usr/lib64/libxcb.so.1
  • #2 xcb_xlib_lock
    from /usr/lib64/libxcb-xlib.so.0
  • #3 ??
    from /usr/lib64/libX11.so.6
  • #4 XChangeGC
    from /usr/lib64/libX11.so.6
  • #5 gdk_x11_gc_set_values
    at gdkgc-x11.c line 372
  • #6 IA__gdk_gc_set_values
    at gdkgc.c line 317
  • #7 IA__gdk_gc_set_ts_origin
    at gdkgc.c line 494
  • #8 gdk_window_draw_segments
    at gdkwindow.c line 1646
  • #9 IA__gdk_draw_line
    at gdkdraw.c line 359
  • #10 gantt_header_expose_event
    at planner-gantt-header.c line 587
  • #11 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #12 IA__g_closure_invoke
    at gclosure.c line 490
  • #13 signal_emit_unlocked_R
    at gsignal.c line 2478
  • #14 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #15 IA__g_signal_emit
    at gsignal.c line 2243
  • #16 gtk_widget_event_internal
    at gtkwidget.c line 4695
  • #17 IA__gtk_widget_send_expose
    at gtkwidget.c line 4527
  • #18 IA__gtk_main_do_event
    at gtkmain.c line 1514
  • #19 gdk_window_process_updates_internal
    at gdkwindow.c line 2378
  • #20 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2444
  • #21 gtk_container_idle_sizer
    at gtkcontainer.c line 1307
  • #22 gdk_threads_dispatch
    at gdk.c line 470
  • #23 IA__g_main_context_dispatch
    at gmain.c line 2012
  • #24 g_main_context_iterate
    at gmain.c line 2645
  • #25 IA__g_main_loop_run
    at gmain.c line 2853
  • #26 IA__gtk_main
    at gtkmain.c line 1163
  • #27 main
    at planner-main.c line 139
  • #0 _HB_OPEN_Coverage_Index
    at harfbuzz-open.c line 839
  • #1 GPOS_Do_Glyph_Lookup
    at harfbuzz-gpos.c line 2242
  • #2 HB_GPOS_Apply_String
    at harfbuzz-gpos.c line 5936
  • #3 pango_ot_ruleset_position
    at pango-ot-ruleset.c line 565
  • #4 basic_engine_shape
    at basic-fc.c line 212
  • #5 pango_shape
    at shape.c line 55
  • #6 shape_run
    at pango-layout.c line 3072
  • #7 process_item
    at pango-layout.c line 3182
  • #8 pango_layout_check_lines
    at pango-layout.c line 3475
  • #9 pango_layout_get_iter
    at pango-layout.c line 5459
  • #10 pango_renderer_draw_layout
    at pango-renderer.c line 173
  • #11 IA__gdk_draw_layout_with_colors
    at gdkpango.c line 951
  • #12 IA__gdk_draw_layout
    at gdkpango.c line 1013
  • #13 gantt_header_expose_event
    at planner-gantt-header.c line 604
  • #14 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #15 IA__g_closure_invoke
    at gclosure.c line 490
  • #16 signal_emit_unlocked_R
    at gsignal.c line 2478
  • #17 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #18 IA__g_signal_emit
    at gsignal.c line 2243
  • #19 gtk_widget_event_internal
    at gtkwidget.c line 4695
  • #20 IA__gtk_widget_send_expose
    at gtkwidget.c line 4527
  • #21 IA__gtk_main_do_event
    at gtkmain.c line 1514
  • #22 gdk_window_process_updates_internal
    at gdkwindow.c line 2378
  • #23 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2444
  • #24 gtk_container_idle_sizer
    at gtkcontainer.c line 1307
  • #25 gdk_threads_dispatch
    at gdk.c line 470
  • #26 IA__g_main_context_dispatch
    at gmain.c line 2012
  • #27 g_main_context_iterate
    at gmain.c line 2645
  • #28 IA__g_main_loop_run
    at gmain.c line 2853
  • #29 IA__gtk_main
    at gtkmain.c line 1163
  • #30 main
    at planner-main.c line 139
  • #0 pango_default_break
    at break.c line 594
  • #1 pango_break
    at break.c line 1515
  • #2 pango_layout_check_lines
    at pango-layout.c line 3589
  • #3 pango_layout_get_iter
    at pango-layout.c line 5459
  • #4 pango_renderer_draw_layout
    at pango-renderer.c line 173
  • #5 IA__gdk_draw_layout_with_colors
    at gdkpango.c line 951
  • #6 IA__gdk_draw_layout
    at gdkpango.c line 1013
  • #7 gantt_header_expose_event
    at planner-gantt-header.c line 604
  • #8 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #9 IA__g_closure_invoke
    at gclosure.c line 490
  • #10 signal_emit_unlocked_R
    at gsignal.c line 2478
  • #11 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #12 IA__g_signal_emit
    at gsignal.c line 2243
  • #13 gtk_widget_event_internal
    at gtkwidget.c line 4695
  • #14 IA__gtk_widget_send_expose
    at gtkwidget.c line 4527
  • #15 IA__gtk_main_do_event
    at gtkmain.c line 1514
  • #16 gdk_window_process_updates_internal
    at gdkwindow.c line 2378
  • #17 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2444
  • #18 gtk_container_idle_sizer
    at gtkcontainer.c line 1307
  • #19 gdk_threads_dispatch
    at gdk.c line 470
  • #20 IA__g_main_context_dispatch
    at gmain.c line 2012
  • #21 g_main_context_iterate
    at gmain.c line 2645
  • #22 IA__g_main_loop_run
    at gmain.c line 2853
  • #23 IA__gtk_main
    at gtkmain.c line 1163
  • #24 main
    at planner-main.c line 139

==

I think this endless loop is caused by the function gantt_header_expose_event in planner-gantt-header.c
Comment 4 Tobias Mueller 2009-03-09 01:04:21 UTC
Hey Erik,

your stacktrace still misses debug symbols :( I'd like you to install up-to-date debug-packages as per comment #1.

Would you also mind to run planner with the environment variable G_DEBUG set to "fatal_warnings" as per http://library.gnome.org/devel/glib/unstable/glib-running.html? It makes the application crash once the warning or critical message is raised.

Thanks in advance.
Comment 5 Erik van Pienbroek 2009-03-09 13:32:29 UTC
$ G_DEBUG=fatal-criticals gdb /usr/bin/planner
GNU gdb Fedora (6.8-29.fc10)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...
(gdb) r
Starting program: /usr/bin/planner 
[Thread debugging using libthread_db enabled]
warning: the debug information found in "/usr/lib/debug//lib64/libuuid.so.1.2.debug" does not match "/lib64/libuuid.so.1" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/lib64/libuuid.so.1.2.debug" does not match "/lib64/libuuid.so.1" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//lib64/libcom_err.so.2.1.debug" does not match "/lib64/libcom_err.so.2" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/lib64/libcom_err.so.2.1.debug" does not match "/lib64/libcom_err.so.2" (CRC mismatch).
[New Thread 0x7ffff7fb17f0 (LWP 28904)]

** CRITICAL **: mrp_time2_add_seconds: assertion `secs >= 0' failed
aborting...

Program received signal SIGABRT, Aborted.
0x000000358e632f05 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	  return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
Missing separate debuginfos, use: debuginfo-install avahi-0.6.22-12.fc10.x86_64 avahi-glib-0.6.22-12.fc10.x86_64 bug-buddy-2.24.2-1.fc10.x86_64 dbus-glib-0.76-3.fc10.x86_64 dbus-libs-1.2.4-2.fc10.x86_64 e2fsprogs-libs-1.41.4-1.fc10.x86_64 elfutils-libelf-0.140-1.fc10.x86_64 expat-2.0.1-5.x86_64 gamin-0.1.9-6.fc10.x86_64 gnome-keyring-2.24.1-1.fc10.x86_64 gtk-nodoka-engine-0.7.2-1.fc10.x86_64 gvfs-1.0.3-6.fc10.x86_64 keyutils-libs-1.2-3.fc9.x86_64 libX11-1.1.4-6.fc10.x86_64 libXau-1.0.4-1.fc10.x86_64 libXcomposite-0.4.0-5.fc10.x86_64 libXcursor-1.1.9-3.fc10.x86_64 libXdamage-1.1.1-4.fc9.x86_64 libXdmcp-1.0.2-6.fc10.x86_64 libXext-1.0.4-1.fc9.x86_64 libXfixes-4.0.3-4.fc10.x86_64 libXi-1.1.3-4.fc9.x86_64 libXinerama-1.0.3-2.fc10.x86_64 libXrandr-1.2.3-1.fc10.x86_64 libXrender-0.9.4-3.fc9.x86_64 libacl-2.2.47-3.fc10.x86_64 libattr-2.4.43-2.fc10.x86_64 libcanberra-0.10-3.fc10.x86_64 libcanberra-gtk2-0.10-3.fc10.x86_64 libcap-2.10-2.fc10.x86_64 libgcc-4.3.2-7.x86_64 libogg-1.1.3-9.fc9.x86_64 libpng-1.2.35-1.fc10.x86_64 libselinux-2.0.73-1.fc10.x86_64 libstdc++-4.3.2-7.x86_64 libtdb-1.1.1-27.fc10.x86_64 libtool-ltdl-1.5.26-4.fc10.x86_64 libvorbis-1.2.0-5.fc10.x86_64 libxcb-1.1.91-5.fc10.x86_64 pixman-0.12.0-2.fc10.x86_64
(gdb) bt
  • #0 raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 abort
    at abort.c line 88
  • #2 IA__g_logv
    at gmessages.c line 497
  • #3 IA__g_log
    at gmessages.c line 517
  • #4 planner_scale_format_time
    at planner-scale-utils.c line 76
  • #5 gantt_header_expose_event
    at planner-gantt-header.c line 592
  • #6 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #7 IA__g_closure_invoke
    at gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #9 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #10 IA__g_signal_emit
    at gsignal.c line 3034
  • #11 gtk_widget_event_internal
    at gtkwidget.c line 4745
  • #12 IA__gtk_main_do_event
    at gtkmain.c line 1553
  • #13 gdk_window_process_updates_internal
    at gdkwindow.c line 2598
  • #14 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2664
  • #15 gtk_container_idle_sizer
    at gtkcontainer.c line 1309
  • #16 gdk_threads_dispatch
    at gdk.c line 473
  • #17 g_main_dispatch
    at gmain.c line 2144
  • #18 IA__g_main_context_dispatch
    at gmain.c line 2697
  • #19 g_main_context_iterate
    at gmain.c line 2778
  • #20 IA__g_main_loop_run
    at gmain.c line 2986
  • #21 IA__gtk_main
    at gtkmain.c line 1200
  • #22 main
    at planner-main.c line 139
  • #0 raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 abort
    at abort.c line 88
  • #2 IA__g_logv
    at gmessages.c line 497
  • #3 IA__g_log
    at gmessages.c line 517
  • #4 planner_scale_format_time
    at planner-scale-utils.c line 76
  • #5 gantt_header_expose_event
    at planner-gantt-header.c line 592
  • #6 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #7 IA__g_closure_invoke
    at gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #9 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #10 IA__g_signal_emit
    at gsignal.c line 3034
  • #11 gtk_widget_event_internal
    at gtkwidget.c line 4745
  • #12 IA__gtk_main_do_event
    at gtkmain.c line 1553
  • #13 gdk_window_process_updates_internal
    at gdkwindow.c line 2598
  • #14 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2664
  • #15 gtk_container_idle_sizer
    at gtkcontainer.c line 1309
  • #16 gdk_threads_dispatch
    at gdk.c line 473
  • #17 g_main_dispatch
    at gmain.c line 2144
  • #18 IA__g_main_context_dispatch
    at gmain.c line 2697
  • #19 g_main_context_iterate
    at gmain.c line 2778
  • #20 IA__g_main_loop_run
    at gmain.c line 2986
  • #21 IA__gtk_main
    at gtkmain.c line 1200
  • #22 main
    at planner-main.c line 139
	main_window = (GtkWidget *) 0x950000
	geometry = (gchar *) 0x0
	context = <value optimized out>
	entries = {{long_name = 0x4711aa "geometry", short_name = 103 'g', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x7fffffffe238, 
    description = 0x471250 "Create the initial window with the given geometry.", arg_description = 0x4711b3 "GEOMETRY"}, {long_name = 0x0, 
    short_name = 0 '\0', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
	filename = <value optimized out>
(gdb) 

This is with Fedora 10 with all the debug packages installed (the messages about '<value optimized out>' are caused by the compiler optimalisation flags used by Fedora)
Comment 6 Tobias Mueller 2009-03-09 22:39:27 UTC
Reopening as we have a good stacktrace. Thanks Erik :)

I am also confirming this bug.

Simply click "Tasks" in the left menu, "Insert Task" and give it a name and a duration of, say, 1000d.
Switch to "Gantt" mode, click "zoom to fit".
It'll then eat all the CPU and print  CRITICAL **: mrp_time2_add_seconds: assertion `secs >= 0' failed all the time.

This happens on F10s 0.14.3. I can't build trunk so I can't say whether it happens on trunk.
Comment 7 André Costa 2009-08-27 22:00:04 UTC
Also happens on Fedora 11 (no surprise since planner version is the same as it was on F10 -- 0.14.3).

This is a bug too serious to be 1 year old... :-( (it can result in loss of data if "zoom to fit" is tried on a file with lots of unsaved data)
Comment 8 André Costa 2009-08-27 22:04:41 UTC
Additional info: if the gantt chart is smaller than the screen area the operation works as expected -- the chart is expanded to take advantage of the extra space available. The problem occurs only when the chart needs to be shrunk.
Comment 9 Caolan McNamara 2009-11-17 10:45:27 UTC
Created attachment 147960 [details] [review]
this makes it go away

Following the same pattern for zoom in and zoom out makes the problem "go away"
Comment 10 Maurice van der Pot 2009-11-17 21:41:10 UTC
This was a problem introduced in 0.14.3 by the patch that added dragging of task duration beyond the window size.

I reimplemented said functionality in a better way, thereby fixing the zoom-to-fit crash.

The fix will be in the next release. Thanks for reporting this.
Comment 11 Tobias Mueller 2009-11-18 00:23:02 UTC
Nice :-)
What's with the patch attached then? Have you used it? Could you then set the status to committed? If not probably rejected.

Anyway, which revision fixed this bug? (Maybe distros want to backport, you'll never know...)
Comment 12 Alexandre Franke 2009-11-18 11:23:29 UTC
Comment on attachment 147960 [details] [review]
this makes it go away

Maurice solved it another way.
Comment 13 Alexandre Franke 2009-11-18 11:25:00 UTC
(In reply to comment #11)
> Nice :-)
> What's with the patch attached then? Have you used it? Could you then set the
> status to committed? If not probably rejected.

Done.

> Anyway, which revision fixed this bug? (Maybe distros want to backport, you'll
> never know...)

Fixed by 8e4fab5a5585e3e33b402c348ab3b5958eab8a8c.
Comment 14 Tobias Mueller 2010-08-04 20:35:37 UTC
*** Bug 610333 has been marked as a duplicate of this bug. ***
Comment 15 Alexandre Franke 2010-10-19 15:38:08 UTC
*** Bug 632546 has been marked as a duplicate of this bug. ***
Comment 16 Alexandre Franke 2010-12-01 14:27:09 UTC
*** Bug 636195 has been marked as a duplicate of this bug. ***
Comment 17 Alexandre Franke 2011-03-07 10:55:08 UTC
*** Bug 644061 has been marked as a duplicate of this bug. ***