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 553135 - eog crash: assertion failed. Gtk error: shortcuts_remove_rows: code should not be reached
eog crash: assertion failed. Gtk error: shortcuts_remove_rows: code should no...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
2.14.x
Other All
: Normal critical
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
Depends on:
Blocks:
 
 
Reported: 2008-09-21 14:45 UTC by Pablo Castellano (IRC: pablog)
Modified: 2008-09-25 11:24 UTC
See Also:
GNOME target: 2.24.x
GNOME version: 2.23/2.24


Attachments
a patch (1.37 KB, patch)
2008-09-22 18:13 UTC, Matthias Clasen
none Details | Review
updated patch (1.21 KB, patch)
2008-09-22 18:24 UTC, Claudio Saavedra
committed Details | Review

Description Pablo Castellano (IRC: pablog) 2008-09-21 14:45:42 UTC
Steps to reproduce:
1-Make sure you don't have rights to mount any volume.
2-Run eog; File->Open.
3-Choose any volume (Don't worry if it's not opened due to bug #272742) and close the window.
4-Mount ANY volume from Places->volume (should ask for password).
5-Crash! (If it hasn't crashed then umount the volume and it should also crash).

Stack trace:
[Thread debugging using libthread_db enabled]
[New Thread 0xb6972b00 (LWP 11284)]
[New Thread 0xb682fb90 (LWP 11287)]
[New Thread 0xb5b53b90 (LWP 11288)]
[New Thread 0xb5352b90 (LWP 11289)]
[Thread 0xb5352b90 (LWP 11289) exited]

Program received signal SIGABRT, Aborted.

Thread 3063360256 (LWP 11284)

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/tls/i686/cmov/libc.so.6
  • #2 abort
    from /lib/tls/i686/cmov/libc.so.6
  • #3 g_assertion_message
    from /usr/lib/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #9 ??
    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 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #15 ??
    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_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #18 ??
    from /usr/lib/libgio-2.0.so.0
  • #19 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #21 ??
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #24 ??
    from /usr/lib/gio/modules/libgioremote-volume-monitor.so
  • #25 ??
    from /usr/lib/libglib-2.0.so.0
  • #26 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #27 ??
    from /usr/lib/libglib-2.0.so.0
  • #28 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #29 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #30 main
    at main.c line 229

Thread 1 (Thread 0xb6972b00 (LWP 11284))

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/tls/i686/cmov/libc.so.6
  • #2 abort
    from /lib/tls/i686/cmov/libc.so.6
  • #3 g_assertion_message
    from /usr/lib/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #9 ??
    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 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #15 ??
    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_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #18 ??
    from /usr/lib/libgio-2.0.so.0
  • #19 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #21 ??
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #24 ??
    from /usr/lib/gio/modules/libgioremote-volume-monitor.so
  • #25 ??
    from /usr/lib/libglib-2.0.so.0
  • #26 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #27 ??
    from /usr/lib/libglib-2.0.so.0
  • #28 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #29 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #30 main
    at main.c line 229

Other information:
Original: https://bugs.launchpad.net/ubuntu/+source/eog/+bug/272754

Ubuntu Intrepid Alpha6 fully updated.

http://bugzilla.gnome.org/show_bug.cgi?id=553133 could be related to this one.

(eog:11828): Gtk-CRITICAL **: gtk_tree_model_get_iter: assertion `GTK_IS_TREE_MODEL (tree_model)' failed
**
Gtk:ERROR:/build/buildd/gtk+2.0-2.14.2/gtk/gtkfilechooserdefault.c:1448:shortcuts_remove_rows: code should not be reached
Aborted (core dumped)

I have installed eog-dbg and run the script from https://wiki.ubuntu.com/Backtrace and here I attach the log.
Ubuntu Alpha6 fully updated.

ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 8.10
NonfreeKernelModules: wl
Package: eog 2.23.92-0ubuntu1
ProcEnviron:
 SHELL=/bin/bash
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 LANG=es_ES.UTF-8
SourcePackage: eog
Uname: Linux 2.6.27-3-generic i686
Comment 1 Claudio Saavedra 2008-09-21 16:19:07 UTC
I can reproduce it in the following way:

1. Ummount some drive.
2. open eog, file->open.
3. Click on the unmounted volume, it is mounted.
4. Close the Open dialog.
5. Umount the volume from the desktop, crash.

Full symbols:

Thread 1 (Thread 0xb6770710 (LWP 4956))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/i686/cmov/libpthread.so.0
  • #2 IA__g_spawn_sync
    at gspawn.c line 382
  • #3 IA__g_spawn_command_line_sync
    at gspawn.c line 694
  • #4 run_bug_buddy
    at gnome-breakpad.cc line 222
  • #5 check_if_gdb
    at gnome-breakpad.cc line 291
  • #6 bugbuddy_segv_handle
    at gnome-breakpad.cc line 83
  • #7 <signal handler called>
  • #8 __kernel_vsyscall
  • #9 raise
    from /lib/i686/cmov/libc.so.6
  • #10 abort
    from /lib/i686/cmov/libc.so.6
  • #11 IA__g_assertion_message
    at gtestutils.c line 1301
  • #12 shortcuts_remove_rows
    at gtkfilechooserdefault.c line 1448
  • #13 shortcuts_add_volumes
    at gtkfilechooserdefault.c line 2058
  • #14 volumes_bookmarks_changed_cb
    at gtkfilechooserdefault.c line 5328
  • #15 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #16 IA__g_closure_invoke
    at gclosure.c line 767
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #18 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #19 IA__g_signal_emit
    at gsignal.c line 3034
  • #20 volumes_changed
    at gtkfilesystem.c line 161
  • #21 IA__g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #22 IA__g_closure_invoke
    at gclosure.c line 767
  • #23 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #24 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #25 IA__g_signal_emit_by_name
    at gsignal.c line 3071
  • #26 child_volume_changed
    at gunionvolumemonitor.c line 270
  • #27 IA__g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #28 IA__g_closure_invoke
    at gclosure.c line 767
  • #29 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #30 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #31 IA__g_signal_emit_by_name
    at gsignal.c line 3071
  • #32 signal_emit_in_idle_do
    at gproxyvolumemonitor.c line 391
  • #33 g_idle_dispatch
    at gmain.c line 4233
  • #34 g_main_dispatch
    at gmain.c line 2142
  • #35 IA__g_main_context_dispatch
    at gmain.c line 2695
  • #36 g_main_context_iterate
    at gmain.c line 2776
  • #37 IA__g_main_loop_run
    at gmain.c line 2984
  • #38 IA__gtk_main
    at gtkmain.c line 1200
  • #39 main
    at main.c line 229
  • #0 __kernel_vsyscall

Comment 2 Claudio Saavedra 2008-09-21 16:24:48 UTC
I can reproduce this with evince, gnome-panel (ctrl+f2, execute with file), eog. So this most likely is a bug in the filechooser. Reassigning.
Comment 3 Pablo Castellano (IRC: pablog) 2008-09-21 20:00:12 UTC
Yes, it's not only in eog.
Comment 4 Matthias Clasen 2008-09-22 18:13:17 UTC
Created attachment 119180 [details] [review]
a patch
Comment 5 Claudio Saavedra 2008-09-22 18:24:57 UTC
Created attachment 119181 [details] [review]
updated patch

Well, this actually compiles and fixes the bug.
Comment 6 Claudio Saavedra 2008-09-22 18:29:03 UTC
While we are at it...

@@ -8586,7 +8600,7 @@
 
   if (!info)
     {
-      search_clear_model_row (request->impl->search_model, &iter);
+      search_clear_model_row (GTK_TREE_MODEL (request->impl->search_model), &iter);
       gtk_list_store_remove (request->impl->search_model, &iter);
       goto out;
     }
Comment 7 Matthias Clasen 2008-09-22 18:38:44 UTC
2008-09-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        Bug 553135 – eog crash: assertion failed. Gtk error:
        shortcuts_remove_rows: code should not be reached

        * gtk/gtkfilechooserdefault.c: Disconnect from GtkFileSystem
        signals when we are destroyed, in order to avoid nasty surprises.
        Patch by Claudio Saavedra
Comment 8 Michael Natterer 2008-09-25 11:24:42 UTC
This one fixes warnings from g_object_unref() caused by above commit:

2008-09-25  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_finalize):
	don't unref the file system backend, the newly added
	unset_file_system_backend() already does this (bug #553135).