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 451086 - beast crashes upon deleting tracks quickly
beast crashes upon deleting tracks quickly
Status: RESOLVED FIXED
Product: beast
Classification: Other
Component: beast-gtk
SVN trunk
Other All
: High major
: ---
Assigned To: Beast Maintainers
Beast Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-06-25 23:47 UTC by Stefan Westerfeld
Modified: 2007-09-20 21:05 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Stefan Westerfeld 2007-06-25 23:47:53 UTC
Steps to reproduce:
1. open the file http://space.twc.de/~stefan/music/MirkoStefanBass16.bse

   I suppose it will also work with any other file which is really large and
   bloated (lots of tracks / lots of instruments / lots of parts)
 
2. delete all tracks _quickly_, starting with track #1, by pressing the delete
   track toolbar button repeatedly 

The crasher doesn't always happen, but if you try a few times it should work. I was under the impression that its harder to reproduce it in gdb, but that may be wrong.

Stack trace:
(gdb) bt
  • #0 sfi_value_get_proxy
    at sfivalues.c line 345
  • #1 beast__bse_item_seq_from_seq
    at bstgenbseapi.c line 2399
  • #2 track_view_fill_value
    at bsttrackview.c line 169
  • #3 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #4 ??
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #7 gtk_tree_model_sort_get_value
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreemodelsort.c line 1006
  • #8 IA__gtk_tree_view_column_cell_set_cell_data
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreeviewcolumn.c line 2518
  • #9 gtk_tree_view_expose
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreeview.c line 4284
  • #10 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtkmarshalers.c line 84
  • #11 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #12 ??
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #15 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtkwidget.c line 3915
  • #16 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtkmain.c line 1533
  • #17 gdk_window_process_updates_internal
    at /build/buildd/gtk+2.0-2.10.13/gdk/gdkwindow.c line 2338
  • #18 IA__gdk_window_process_updates
    at /build/buildd/gtk+2.0-2.10.13/gdk/gdkwindow.c line 2448
  • #19 gtk_tree_view_clamp_node_visible
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreeview.c line 8861
  • #20 gtk_tree_view_real_set_cursor
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreeview.c line 12305
  • #21 IA__gtk_tree_view_set_cursor_on_cell
    at /build/buildd/gtk+2.0-2.10.13/gtk/gtktreeview.c line 12417
  • #22 browse_selection_handler
    at gxkutils.c line 2175
  • #23 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #24 ??
    from /usr/lib/libglib-2.0.so.0
  • #25 g_main_context_iteration
    from /usr/lib/libglib-2.0.so.0
  • #26 main
    at bstmain.c line 400

Other information:
Stack trace is from SVN r4347, Debian/unstable, AMD64.
Comment 1 Stefan Westerfeld 2007-06-25 23:50:33 UTC
Here is the program output for the above stacktrace:

stefan@lotrien:~/share/music/my/release$ gdb --args beast-0.7.1 m.bse
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) r
Starting program: /usr/local/beast/bin/beast-0.7.1 m.bse
[Thread debugging using libthread_db enabled]
[New Thread 47208761663312 (LWP 15850)]
[New Thread 1082132800 (LWP 15853)]
[New Thread 1090525504 (LWP 15854)]

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 590

(beast-0.7.1:15850): BSE-WARNING **: while executing "BseItem+get-name": Procedure parameter invalid

(beast-0.7.1:15850): SFI-CRITICAL **: sfi_glue_proxy_get: assertion `proxy != 0' failed

(beast-0.7.1:15850): SFI-CRITICAL **: sfi_glue_proxy_get: assertion `proxy != 0' failed

(beast-0.7.1:15850): SFI-CRITICAL **: sfi_glue_proxy_get: assertion `proxy != 0' failed

(beast-0.7.1:15850): BSE-WARNING **: while executing "BseItem+get-name": Procedure parameter invalid

(beast-0.7.1:15850): SFI-CRITICAL **: sfi_glue_proxy_get: assertion `proxy != 0' failed

(beast-0.7.1:15850): SFI-CRITICAL **: sfi_glue_proxy_get: assertion `proxy != 0' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47208761663312 (LWP 15850)]
0x00002aefa29c1447 in sfi_value_get_proxy (value=0x27a27158d48c35b) at sfivalues.c:345
345       g_return_val_if_fail (SFI_VALUE_HOLDS_PROXY (value), 0);
Comment 2 Tim Janik 2007-09-20 21:05:45 UTC
please verify, should be fixed by:

  2007-09-20 22:59:29  Tim Janik  <timj@gtk.org>
        
    * beast-gtk/bsttrackview.c (track_view_fill_value): guard against
      non-existing items when querying object properties, fixes bug #451086.