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 162631 - Race condition can create zero sized views
Race condition can create zero sized views
Status: RESOLVED FIXED
Product: Gnumeric
Classification: Applications
Component: Sheet Objects
git master
Other All
: Immediate blocker
: ---
Assigned To: Jody Goldberg
Jody Goldberg
Depends on:
Blocks:
 
 
Reported: 2004-12-31 17:36 UTC by Emmanuel Pacaud
Modified: 2011-09-30 19:23 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emmanuel Pacaud 2004-12-31 17:36:54 UTC
Click on one of the sheet object buttons on toolbarn then click on sheet to
actually create object -> crash.

Here's the backtrace:

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 17423)

  • #0 sheet_object_view_set_bounds
    at sheet-object.c line 890
  • #1 set_acetate_coords
    at gnumeric-pane.c line 969
  • #2 gnm_pane_object_update_bbox
    at gnumeric-pane.c line 1051
  • #3 scg_object_select
    at sheet-control-gui.c line 1782
  • #4 ig_obj_create_begin
    at item-grid.c line 703
  • #5 item_grid_button_press
    at item-grid.c line 758
  • #6 foo_canvas_marshal_BOOLEAN__BOXED
    at foo-canvas-marshal.c line 125
  • #7 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #12 emit_event
  • #13 foo_canvas_button
    at foo-canvas.c line 2739
  • #14 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #20 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #24 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #25 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #26 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #27 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #28 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #29 main
    at main-application.c line 358

Comment 1 Morten Welinder 2004-12-31 17:51:33 UTC
Confirmed on cvs.  Not on 1.4.1.

Earlier I synced foocanvas which makes it the obvious suspect.
Comment 2 Emmanuel Pacaud 2005-01-01 09:51:59 UTC
Reverting last foocanvas changes doesn't fix the problem for me.
Comment 3 Jody Goldberg 2005-01-09 18:39:15 UTC
Should be fixed in cvs.
Comment 4 Emmanuel Pacaud 2005-01-09 20:20:21 UTC
CVS works better, but still crash when inserting a default sized chart object
with a quick click (longer click doesn't crash gnumeric).

For other sheet objects, a quick click makes appear size grips only, without
sheet object.

Comment 5 Jody Goldberg 2005-01-13 03:58:22 UTC
I can not replicate.  default sized charts work as expected, and not of the
widgets or drawing objects are failing for me.
Comment 6 Emmanuel Pacaud 2005-01-13 09:53:16 UTC
Keyword is "quick".

It's more easy to replicate with graph objects.

Open guru, click on "create" button, then a quick click anywhere on sheet.

I can replicate with a fresh CVS update.
Comment 7 Morten Welinder 2005-01-13 15:01:23 UTC
An updated backtrace would be helpful.
Comment 8 Emmanuel Pacaud 2005-01-13 15:10:51 UTC
Here it is:

Program received signal SIGSEGV, Segmentation fault.

Thread 1089792064 (LWP 32263)

  • #0 sheet_object_view_set_bounds
    at sheet-object.c line 894
  • #1 cb_collect_objects_to_commit
    at sheet-control-gui.c line 1962
  • #2 g_hash_table_foreach
    from /usr/lib/libglib-2.0.so.0
  • #3 scg_objects_drag_commit
    at sheet-control-gui.c line 1971
  • #4 cb_control_point_event
    at gnumeric-pane.c line 831
  • #5 foo_canvas_marshal_BOOLEAN__BOXED
    at foo-canvas-marshal.c line 125
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 emit_event
    at foo-canvas.c line 2533
  • #11 foo_canvas_button
    at foo-canvas.c line 2747
  • #12 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #18 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #22 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #23 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #24 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #25 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #26 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #27 main
    at main-application.c line 366

Comment 9 Jody Goldberg 2005-01-14 01:30:02 UTC
ok this time it's really really fixed
At worst future variants of this race condition will produce a warning.
Comment 10 Emmanuel Pacaud 2005-01-15 17:15:34 UTC
Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 20187)

  • #0 sheet_object_view_set_bounds
    at sheet-object.c line 894
  • #1 cb_collect_objects_to_commit
    at sheet-control-gui.c line 1962
  • #2 g_hash_table_foreach
    from /usr/lib/libglib-2.0.so.0
  • #3 scg_objects_drag_commit
    at sheet-control-gui.c line 1971
  • #4 cb_control_point_event
    at gnumeric-pane.c line 832
  • #5 foo_canvas_marshal_BOOLEAN__BOXED
    at foo-canvas-marshal.c line 125
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 emit_event
    at foo-canvas.c line 2533
  • #11 foo_canvas_button
    at foo-canvas.c line 2747
  • #12 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #18 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #22 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #23 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #24 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #25 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #26 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #27 main
    at main-application.c line 366

Comment 11 Jody Goldberg 2005-01-16 03:46:11 UTC
got it.