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 680628 - GTK+3 Applications crash with GtkFileChooser dialog displayed
GTK+3 Applications crash with GtkFileChooser dialog displayed
Status: RESOLVED DUPLICATE of bug 687196
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
3.4.x
Other Linux
: High critical
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
Depends on:
Blocks:
 
 
Reported: 2012-07-26 04:27 UTC by ariel
Modified: 2013-05-20 04:58 UTC
See Also:
GNOME target: ---
GNOME version: 3.3/3.4


Attachments
The bug present in gedit, some python script and shotwell (1.75 KB, text/plain)
2012-07-26 04:27 UTC, ariel
Details

Description ariel 2012-07-26 04:27:54 UTC
Created attachment 219669 [details]
The bug present in gedit, some python script and shotwell

ALL Gtk+3.X.x applications crash when you have a GtkFileChooser dialog opened and some other application creates, removes, renames, etc... files from the same folder that is displayed.

All of them print this to the console:
Gtk:ERROR:gtkfilesystemmodel.c:751:gtk_file_system_model_sort: assertion failed: (r == n_visible_rows)
Aborted (core dumped)

Or this:
Gtk-CRITICAL **: gtk_tree_model_filter_convert_iter_to_child_iter: assertion `valid == TRUE' failed

Gtk-CRITICAL **: gtk_file_system_model_get_value: assertion `ITER_IS_VALID (model, iter)' failed

GLib-GObject-WARNING **: gtype.c:4206: type id `0' is invalid

GLib-GObject-WARNING **: can't peek value table for type `<invalid>' which is not currently referenced
Segmentation fault (core dumped)

And this, when you select (just focus) any other file in the dialog, once the bug has been 'triggered':
GLib-GObject-WARNING **: gsignal.c:2534: handler `####' of instance `0x#######' is not blocked

(Where the "#"s are some random numers, they depend of the application. I must mention that 'instance' is always the same number for the application the bug is present)

An example of every case is attached.

Example #1: The bug in gedit

Example #2: The bug in the Python-Gtk+ Tutorial, FileChooserDialog sample

Example #3: The bug in shotwell

This has happened to me with ALL applications that use Gtk+3.X.x. Every single one of them (for example: brasero, rhythmbox, gedit, totem, transmission, and many other...).

This is not present in Gtk+2.X.x

Thank You!
Comment 1 André Klapper 2012-07-26 08:57:53 UTC
Please run the applications in gdb:
    gdb gedit
    run
    (make it crash)
    thread apply all bt

and paste the output here.
Which exact version of GTK+ is this about? Which distribution is this about?
Comment 2 ariel 2012-07-26 22:34:32 UTC
Well, I don't really know which version of GTK+ all those programs use, but I'm pretty sure they are GTK+3 and above... I'm currently running fedora 17 x86 (i686) with linux kernel 3.3.4-5.fc17.i686 and Gnome 3.4.2 (thats what the system monitor said)...

Okay, this is all the output (from the execution, to the last prompt), in the case #1 (when it crashes creating a file):

[ariel@hawk ~]$ gdb gedit
GNU gdb (GDB) Fedora (7.4.50.20120120-49.fc17)
Copyright (C) 2012 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 "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/gedit...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install gedit-3.4.2-1.fc17.i686
(gdb) run
Starting program: /usr/bin/gedit 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb7d80b40 (LWP 2530)]
[New Thread 0xb73ffb40 (LWP 2531)]
[New Thread 0xb69ffb40 (LWP 2532)]
Detaching after fork from child process 2533.

(gedit:2527): GtkSourceView-WARNING **: no color named 'aluminium4'

(gedit:2527): GtkSourceView-WARNING **: no color named 'aluminium5'
[New Thread 0xb0fc6b40 (LWP 2539)]
[New Thread 0xb07c5b40 (LWP 2540)]
[New Thread 0xaffc4b40 (LWP 2541)]
[Thread 0xb07c5b40 (LWP 2540) exited]
[Thread 0xb7d80b40 (LWP 2530) exited]
[Thread 0xb0fc6b40 (LWP 2539) exited]
[New Thread 0xb0fc6b40 (LWP 2542)]
[New Thread 0xb7d80b40 (LWP 2543)]
[Thread 0xb7d80b40 (LWP 2543) exited]
[Thread 0xaffc4b40 (LWP 2541) exited]
**
Gtk:ERROR:gtkfilesystemmodel.c:751:gtk_file_system_model_sort: assertion failed: (r == n_visible_rows)

Program received signal SIGABRT, Aborted.
0x00111416 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 1 (Thread 0xb7fde880 (LWP 2692))

  • #0 gtk_tree_model_get_valist
    from /lib/libgtk-3.so.0
  • #1 gtk_tree_model_get
    from /lib/libgtk-3.so.0
  • #2 gtk_entry_completion_compute_prefix
    from /lib/libgtk-3.so.0
  • #3 gtk_entry_completion_insert_prefix
    from /lib/libgtk-3.so.0
  • #4 ??
    from /lib/libgtk-3.so.0
  • #5 ??
    from /lib/libgobject-2.0.so.0
  • #6 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #7 ??
    from /lib/libgobject-2.0.so.0
  • #8 ??
    from /lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #10 ??
    from /lib/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #12 gtk_main
    from /lib/libgtk-3.so.0
  • #13 main

The crash is also triggered when you open a FileChooserDialog (Or at least such object exists), and the files on the folder that's currently being displayed change (create, remove, rename, etc...), like, if I create an instance of such class, run it (run() method) and then hide it (hide() method), if I make changes on the filesystem (after "hiding" the dialog), the bug still occurs, unless I destroy (destroy() method) the object.

Is there something else I can do?
Comment 3 André Klapper 2012-07-27 01:16:39 UTC
Thanks for the trace. Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols by installing gedit-debuginfo, gtk3-debuginfo and glib2-debuginfo? Please see http://live.gnome.org/GettingTraces for more information on how to do so and paste it in this bug report. Thanks in advance!
Comment 4 ariel 2012-07-28 17:13:52 UTC
Okay, here's the stack trace with the debuinfo tools installed:

Case #1 (SIGSEGV):

Thread 1 (Thread 0xb7fdd880 (LWP 2550))

  • #0 gtk_tree_model_get_valist
    at gtktreemodel.c line 1766
  • #1 gtk_tree_model_get
    at gtktreemodel.c line 1728
  • #2 gtk_entry_completion_compute_prefix
  • #3 gtk_entry_completion_insert_prefix
    at gtkentrycompletion.c line 1889
  • #4 check_completion_callback
    at gtkentry.c line 9709
  • #5 ??
    from /lib/libgobject-2.0.so.0
  • #6 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #7 ??
    from /lib/libgobject-2.0.so.0
  • #8 ??
    from /lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #10 ??
    from /lib/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #12 gtk_main
    at gtkmain.c line 1161
  • #13 gedit_main
    at gedit.c line 205
  • #14 main
    at gedit.c line 331

I hope this helps!
Comment 5 André Klapper 2012-07-29 10:13:23 UTC
Looks like glib2-debuginfo is missing, or something went wrong...
Comment 6 ariel 2012-07-30 15:30:50 UTC
I tried to look for glib2-debuginfo in the fedora (17) rpm repositories (through yum) but I only found glibc-debuginfo, any ideas on how to install that package?
Comment 7 André Klapper 2012-07-30 17:16:17 UTC
In Fedora 16 its name is glib2-debuginfo-2.30.3-1.fc16.i686
Comment 8 ariel 2012-07-30 19:44:23 UTC
Well, I couldn't find it on fedora 17 through yum, so I installed it via RPMFind, hope this helps:

Trace #1 (gedit):

Thread 1 (Thread 0xb7fdd880 (LWP 15988))

  • #0 gtk_tree_model_get_valist
    at gtktreemodel.c line 1766
  • #1 gtk_tree_model_get
    at gtktreemodel.c line 1728
  • #2 gtk_entry_completion_compute_prefix
  • #3 gtk_entry_completion_insert_prefix
    at gtkentrycompletion.c line 1889
  • #4 check_completion_callback
    at gtkentry.c line 9709
  • #5 ??
    from /lib/libgobject-2.0.so.0
  • #6 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #7 ??
    from /lib/libgobject-2.0.so.0
  • #8 ??
    from /lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #10 ??
    from /lib/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #12 gtk_main
    at gtkmain.c line 1161
  • #13 gedit_main
    at gedit.c line 205
  • #14 main
    at gedit.c line 331

Comment 9 ariel 2012-08-04 04:38:36 UTC
Are there any news? Is there something else I can help with?
Comment 10 cdp_xe 2012-11-29 21:52:39 UTC
Hi everybody,

I face the same annoying bug in gedit since months under 32 bit and 64 bit Ubuntu 12.04 LTS. Since gedit is one of my most important tools, this bug starts driving me crazy.

Nearly every time I try to open a file in gedit, my gedit crashes and prints the following message:

**
Gtk:ERROR:/build/buildd/gtk+3.0-3.4.2/./gtk/gtkfilesystemmodel.c:751:gtk_file_system_model_sort: assertion failed: (r == n_visible_rows)

Program received signal SIGABRT, Aborted.
0x00007ffff4579425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
  • #0 raise
    from /lib/x86_64-linux-gnu/libc.so.6
  • #1 abort
    from /lib/x86_64-linux-gnu/libc.so.6
  • #2 g_assertion_message
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #3 g_assertion_message_expr
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #5 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #6 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #7 g_simple_async_result_complete
    from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  • #8 ??
    from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  • #9 g_main_context_dispatch
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #10 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #12 gtk_main
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #13 main


Hope that helps,
Steffen
Comment 11 André Klapper 2012-11-30 09:16:39 UTC
Steffen: Please provide a stacktrace with debug packages installed for libglib-2 and libgtk-3.
Comment 12 cdp_xe 2013-01-17 15:03:32 UTC
Hi André,

yes. I hope that helps:

[...]
[Thread 0xac9f4b40 (LWP 13816) exited]
[New Thread 0xac9f4b40 (LWP 13974)]
[New Thread 0xac1f3b40 (LWP 13975)]
[New Thread 0xad528b40 (LWP 13976)]
[New Thread 0xb54ffb40 (LWP 13977)]
**
Gtk:ERROR:/build/buildd/gtk+3.0-3.4.2/./gtk/gtkfilesystemmodel.c:751:gtk_file_system_model_sort: assertion failed: (r == n_visible_rows)

Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
(gdb) bt
  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/i386-linux-gnu/libc.so.6
  • #2 abort
    from /lib/i386-linux-gnu/libc.so.6
  • #3 g_assertion_message
    at /build/buildd/glib2.0-2.32.3/./glib/gtestutils.c line 1861
  • #4 g_assertion_message_expr
    at /build/buildd/glib2.0-2.32.3/./glib/gtestutils.c line 1872
  • #5 gtk_file_system_model_sort
    at /build/buildd/gtk+3.0-3.4.2/./gtk/gtkfilesystemmodel.c line 732
  • #6 gtk_file_system_model_sort
    at /build/buildd/gtk+3.0-3.4.2/./gtk/gtkfilesystemmodel.c line 706
  • #7 _gtk_file_system_model_update_file
    at /build/buildd/gtk+3.0-3.4.2/./gtk/gtkfilesystemmodel.c line 1816
  • #8 gtk_file_system_model_query_done
  • #9 g_simple_async_result_complete
    at /build/buildd/glib2.0-2.32.3/./gio/gsimpleasyncresult.c line 767
  • #10 complete_in_idle_cb_for_thread
    at /build/buildd/glib2.0-2.32.3/./gio/gsimpleasyncresult.c line 835
  • #11 g_idle_dispatch
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 4657
  • #12 g_main_dispatch
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 2539
  • #13 g_main_context_dispatch
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 3075
  • #14 g_main_context_iterate
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 3146
  • #15 g_main_context_iterate
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 3083
  • #16 g_main_loop_run
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c line 3340
  • #17 gtk_main
  • #18 main

With best regards,
Steffen Wendzel
Comment 13 Timothy Arceri 2013-05-20 04:58:22 UTC
Looks like this was fixed in 3.6

*** This bug has been marked as a duplicate of bug 687196 ***