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 513082 - nautilus crashed with SIGSEGV in g_type_check_instance_cast()
nautilus crashed with SIGSEGV in g_type_check_instance_cast()
Status: RESOLVED FIXED
Product: libgnomeui
Classification: Deprecated
Component: gio-file-chooser
2.21.x
Other Linux
: Normal critical
: ---
Assigned To: Carlos Garnacho
Carlos Garnacho
Depends on:
Blocks:
 
 
Reported: 2008-01-30 11:34 UTC by Pedro Villavicencio
Modified: 2008-04-04 18:23 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22



Description Pedro Villavicencio 2008-01-30 11:34:07 UTC
This report has been filled here:

https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/187183

"It crashed suddenly, a couple of hours after upgrading libgio (or is it gvfs?)."

"I used nautilus for various and intensive tasks during these two hours, so I was surprised it happened when just opening a text file."

".

Thread 1 (process 6201)

  • #0 IA__g_type_check_instance_cast
    at /build/buildd/glib2.0-2.15.3/gobject/gtype.c line 3148
  • #1 volumes_drives_changed
    at gtkfilesystemgio.c line 380
  • #2 IA__g_cclosure_marshal_VOID__OBJECT
    at /build/buildd/glib2.0-2.15.3/gobject/gmarshal.c line 636
  • #3 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.15.3/gobject/gclosure.c line 490
  • #4 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2440
  • #5 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2199
  • #6 IA__g_signal_emit_by_name
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2267
  • #7 IA__g_volume_eject
    at /build/buildd/glib2.0-2.15.3/gio/gvolume.c line 376
  • #8 IA__g_cclosure_marshal_VOID__OBJECT
    at /build/buildd/glib2.0-2.15.3/gobject/gmarshal.c line 636
  • #9 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.15.3/gobject/gclosure.c line 490
  • #10 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2440
  • #11 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2199
  • #12 IA__g_signal_emit_by_name
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2267
  • #13 _g_socket_send_fd
    at gsysutils.c line 52
  • #14 IA__g_cclosure_marshal_VOID__OBJECT
    at /build/buildd/glib2.0-2.15.3/gobject/gmarshal.c line 636
  • #15 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.15.3/gobject/gclosure.c line 490
  • #16 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2440
  • #17 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2199
  • #18 IA__g_signal_emit
    at /build/buildd/glib2.0-2.15.3/gobject/gsignal.c line 2243
  • #19 g_hal_drive_can_poll_for_media
    at ghaldrive.c line 503
  • #20 filter_func
    at libhal.c line 1033
  • #21 dbus_connection_dispatch
    at dbus-connection.c line 4350
  • #22 add_watch
    at gdbusutils.c line 925
  • #23 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.15.3/glib/gmain.c line 2064
  • #24 g_main_context_iterate
    at /build/buildd/glib2.0-2.15.3/glib/gmain.c line 2697
  • #25 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.15.3/glib/gmain.c line 2905
  • #26 IA__gtk_main
    at /build/buildd/gtk+2.0-2.12.5/gtk/gtkmain.c line 1163
  • #27 main
    at nautilus-main.c line 188
  • #28 __libc_start_main
    from /lib/tls/i686/cmov/libc.so.6
  • #29 Nautilus_Shell_load_session
    at nautilus-shell-interface-stubs.c line 48
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??
    from /lib/ld-linux.so.2
  • #35 ??
  • #36 ??
    from /lib/ld-linux.so.2
  • #37 ??
  • #38 ??
  • #39 ??
  • #40 ??
  • #41 ??
  • #42 ??

Comment 1 Alexander Larsson 2008-02-08 16:23:11 UTC
Crash is in gtkfilesystemgio.c in libgnomeui.
Comment 2 Bastien Nocera 2008-03-07 03:05:02 UTC
Line 380 is:
impl = GTK_FILE_SYSTEM_GIO (user_data);

Means something barfed onto the filesystem pointer somewhere. I'd dismiss it as an old bug, as it's would mean that we would receive the signal after the filesystem's been disposed.

Please test with a more recent glib/gvfs combination and let us know whether it still happens.
Comment 3 Sebastien Bacher 2008-03-18 11:16:35 UTC
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/203364 is a new duplicate using current tarballs
Comment 4 Sebastien Bacher 2008-03-25 23:29:35 UTC
crash under valgrind

"==16786== Invalid read of size 4
==16786==    at 0x4B85852: g_type_check_instance_cast (gtype.c:3172)
==16786==    by 0x5D6D31A: volumes_drives_changed (gtkfilesystemgio.c:398)
==16786==    by 0x4B74F59: g_cclosure_marshal_VOID__OBJECT (gmarshal.c:636)
==16786==    by 0x4B68758: g_closure_invoke (gclosure.c:490)
==16786==    by 0x4B7CD1C: signal_emit_unlocked_R (gsignal.c:2440)
==16786==    by 0x4B7E915: g_signal_emit_valist (gsignal.c:2199)
==16786==    by 0x4B7EBD1: g_signal_emit_by_name (gsignal.c:2267)
==16786==    by 0x4F276CD: child_mount_removed (gunionvolumemonitor.c:293)
==16786==    by 0x4B74F59: g_cclosure_marshal_VOID__OBJECT (gmarshal.c:636)
==16786==    by 0x4B68758: g_closure_invoke (gclosure.c:490)
==16786==    by 0x4B7CD1C: signal_emit_unlocked_R (gsignal.c:2440)
==16786==    by 0x4B7E915: g_signal_emit_valist (gsignal.c:2199)
==16786==    by 0x4B7EBD1: g_signal_emit_by_name (gsignal.c:2267)
==16786==    by 0x7A54D25: (within /usr/lib/gio/modules/libgvfsdbus.so)
==16786==    by 0x4B75009: g_cclosure_marshal_VOID__POINTER (gmarshal.c:601)
==16786==    by 0x4B68758: g_closure_invoke (gclosure.c:490)
==16786==    by 0x4B7CD1C: signal_emit_unlocked_R (gsignal.c:2440)
==16786==    by 0x4B7E915: g_signal_emit_valist (gsignal.c:2199)
==16786==    by 0x4B7EC58: g_signal_emit (gsignal.c:2243)
==16786==    by 0x7A681FB: (within /usr/lib/gio/modules/libgvfsdbus.so)
==16786==    by 0x4A909F6: dbus_connection_dispatch (dbus-connection.c:4379)
==16786==    by 0x7A62E1C: (within /usr/lib/gio/modules/libgvfsdbus.so)
==16786==    by 0x4D07BD7: g_main_context_dispatch (gmain.c:2003)
==16786==    by 0x4D0AE3D: g_main_context_iterate (gmain.c:2636)
==16786==    by 0x4D0B1C6: g_main_loop_run (gmain.c:2844)
==16786==    by 0x443E6E8: gtk_dialog_run (gtkdialog.c:1041)
==16786==    by 0x80AEB46: (within /usr/bin/brasero)
==16786==    by 0x4B756E9: g_cclosure_marshal_VOID(unsigned i_xx_t) (gmarshal.c:251)
==16786==    by 0x4B68758: g_closure_invoke (gclosure.c:490)
==16786==    by 0x4B7CD1C: signal_emit_unlocked_R (gsignal.c:2440)
==16786==    by 0x4B7E915: g_signal_emit_valist (gsignal.c:2199)
==16786==    by 0x4B7EC58: g_signal_emit (gsignal.c:2243)
==16786==    by 0x809B668: (within /usr/bin/brasero)
==16786==    by 0x4B75A4E: g_cclosure_marshal_VOID__VOID (gmarshal.c:77)
==16786==    by 0x4B68758: g_closure_invoke (gclosure.c:490)
==16786==    by 0x4B7CD1C: signal_emit_unlocked_R (gsignal.c:2440)
==16786==    by 0x4B7E915: g_signal_emit_valist (gsignal.c:2199)
==16786==    by 0x4B7EC58: g_signal_emit (gsignal.c:2243)
==16786==  Address 0x6e62428 is 0 bytes inside a block of size 32 free'd
==16786==    at 0x402265C: free (vg_replace_malloc.c:323)
==16786==    by 0x4D0F880: g_free (gmem.c:190)
==16786==    by 0x4F3A06D: _g_local_file_info_get (glocalfileinfo.c:1246)
==16786==    by 0x4F36FEA: g_local_file_enumerator_next_file (glocalfileenumerator.c:194)
==16786==    by 0x4F14949: next_files_thread (gfileenumerator.c:567)
==16786==    by 0x4F25BE8: run_in_thread (gsimpleasyncresult.c:613)
==16786==    by 0x4F1F723: io_job_thread (gioscheduler.c:178)
==16786==    by 0x4D3161A: g_thread_pool_thread_proxy (gthreadpool.c:265)
==16786==    by 0x4D2F9EE: g_thread_create_proxy (gthread.c:635)
==16786==    by 0x4D8F4FA: start_thread (in /lib/tls/i686/cmov/libpthread-2.7.so)
==16786==    by 0x4E78D4D: clone (in /lib/tls/i686/cmov/libc-2.7.so)"
Comment 5 Carlos Garnacho 2008-04-04 18:23:28 UTC
Fixed in r5593

2008-04-04  Carlos Garnacho  <carlos@imendio.com>

        * file-chooser/gtkfilesystemgio.c (gtk_file_system_gio_dispose):
        GVolumeMonitor may survive the GtkFileSystemGio object, disconnect all
        connected signals before disposing the reference to it. Bug #513082.