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 652320 - nautilus crashed with SIGSEGV in nautilus_window_slot_get_current_uri()
nautilus crashed with SIGSEGV in nautilus_window_slot_get_current_uri()
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: Crashers
3.2.x
Other Linux
: Normal critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-06-10 19:57 UTC by Cristian Aravena Romero
Modified: 2011-12-02 21:18 UTC
See Also:
GNOME target: ---
GNOME version: 3.1/3.2


Attachments
(untested) patch (863 bytes, patch)
2011-12-01 22:31 UTC, Cosimo Cecchi
committed Details | Review

Description Cristian Aravena Romero 2011-06-10 19:57:59 UTC
Open bug in Launchpad.net:
https://bugs.launchpad.net/bugs/795708

"Install dropbox and restart nautilus... open apport"

  • #0 nautilus_window_slot_get_current_uri
    at nautilus-window-slot.c line 655
  • #1 update_places
    at nautilus-places-sidebar.c line 468
  • #2 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #3 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3256
  • #4 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #5 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #6 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #7 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3256
  • #8 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #9 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #10 g_object_dispatch_properties_changed
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 926
  • #11 g_object_notify_queue_thaw
    at /build/buildd/glib2.0-2.29.6/./gobject/gobjectnotifyqueue.c line 132
  • #12 g_object_set_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 1734
  • #13 g_object_set
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 1834
  • #14 nautilus_bookmark_update_icon
    at nautilus-bookmark.c line 111
  • #15 nautilus_bookmark_update_icon
    at nautilus-bookmark.c line 92
  • #16 bookmark_file_changed_callback
    at nautilus-bookmark.c line 184
  • #17 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #18 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3256
  • #19 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #20 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #21 nautilus_file_emit_changed
    at nautilus-file.c line 7111
  • #22 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 770
  • #23 emit_change_signals_for_all_files
    at nautilus-directory.c line 247
  • #24 emit_change_signals_for_all_files_in_all_directories
    at nautilus-directory.c line 277
  • #25 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #26 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3256
  • #27 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #28 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #29 ensure_valid_themes
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkicontheme.c line 1209
  • #30 choose_icon
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkicontheme.c line 1241
  • #31 nautilus_icon_info_lookup
    at nautilus-icon-info.c line 392
  • #32 nautilus_icon_info_lookup_from_name
    at nautilus-icon-info.c line 454
  • #33 get_type_icon_info
    at nautilus-pathbar.c line 1153
  • #34 nautilus_path_bar_update_button_appearance
    at nautilus-pathbar.c line 1260
  • #35 reload_icons
    at nautilus-pathbar.c line 1070
  • #36 change_icon_theme
    at nautilus-pathbar.c line 1080
  • #37 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #38 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3294
  • #39 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #40 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #41 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8580
  • #42 gtk_box_forall
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkbox.c line 1721
  • #43 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8583
  • #44 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8583
  • #45 gtk_toolbar_forall
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtktoolbar.c line 2548
  • #46 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8583
  • #47 gtk_box_forall
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkbox.c line 1721
  • #48 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8583
  • #49 gtk_box_forall
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkbox.c line 1721
  • #50 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8583
  • #51 _gtk_widget_propagate_hierarchy_changed
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 8621
  • #52 gtk_widget_unparent
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 3795
  • #53 gtk_paned_remove
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkpaned.c line 1625
  • #54 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #55 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3186
  • #56 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #57 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #58 gtk_widget_dispose
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 10605
  • #59 g_object_run_dispose
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 946
  • #60 nautilus_window_pane_dispose
    at nautilus-window-pane.c line 765
  • #61 g_object_unref
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 2710
  • #62 g_list_foreach
    at /build/buildd/glib2.0-2.29.6/./glib/glist.c line 938
  • #63 nautilus_window_destroy
    at nautilus-window.c line 725
  • #64 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #65 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3372
  • #66 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2987
  • #67 g_signal_emit
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3044
  • #68 gtk_widget_dispose
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkwidget.c line 10616
  • #69 g_object_run_dispose
    at /build/buildd/glib2.0-2.29.6/./gobject/gobject.c line 946
  • #70 g_list_foreach
    at /build/buildd/glib2.0-2.29.6/./glib/glist.c line 938
  • #71 nautilus_application_command_line
    at nautilus-application.c line 1005
  • #72 _gio_marshal_INT__OBJECT
    at /build/buildd/glib2.0-2.29.6/./gio/gio-marshal.c line 968
  • #73 g_closure_invoke
    at /build/buildd/glib2.0-2.29.6/./gobject/gclosure.c line 771
  • #74 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3294
  • #75 g_signal_emit_valist
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 2997
  • #76 g_signal_emit_by_name
    at /build/buildd/glib2.0-2.29.6/./gobject/gsignal.c line 3081
  • #77 g_application_impl_method_call
    at /build/buildd/glib2.0-2.29.6/./gio/gapplicationimpl-dbus.c line 238
  • #78 call_in_idle_cb
    at /build/buildd/glib2.0-2.29.6/./gio/gdbusconnection.c line 4443
  • #79 g_main_dispatch
    at /build/buildd/glib2.0-2.29.6/./glib/gmain.c line 2477
  • #80 g_main_context_dispatch
    at /build/buildd/glib2.0-2.29.6/./glib/gmain.c line 3050
  • #81 g_main_context_iterate
    at /build/buildd/glib2.0-2.29.6/./glib/gmain.c line 3128
  • #82 g_main_loop_run
    at /build/buildd/glib2.0-2.29.6/./glib/gmain.c line 3336
  • #83 gtk_main
    at /build/buildd/gtk+3.0-3.0.11/./gtk/gtkmain.c line 1358
  • #84 g_application_run
    at /build/buildd/glib2.0-2.29.6/./gio/gapplication.c line 1326
  • #85 main
    at nautilus-main.c line 102

Comment 1 Cosimo Cecchi 2011-09-29 05:40:29 UTC
I spent some time debugging this crash after I found a reliable way to reproduce it, and I pushed a fix to git master now. Will backport this to the next 3.2.1 stable release too.
Comment 2 Pedro Villavicencio 2011-10-06 12:59:12 UTC
Hello Cosimo, your commits were applied to the Ubuntu package but it seems to be still causing the crash, backtrace with the new package is:

.

Thread 1 (Thread 0x7fc4855ea960 (LWP 1523))

  • #0 nautilus_window_slot_get_current_uri
    at nautilus-window-slot.c line 646
  • #1 update_places
    at nautilus-places-sidebar.c line 486
  • #2 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #3 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3272
  • #4 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #5 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #6 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #7 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3272
  • #8 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #9 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #10 g_object_dispatch_properties_changed
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 925
  • #11 g_object_notify_queue_thaw
    at /build/buildd/glib2.0-2.30.0/./gobject/gobjectnotifyqueue.c line 132
  • #12 g_object_set_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1733
  • #13 g_object_set
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1833
  • #14 nautilus_bookmark_update_icon
    at nautilus-bookmark.c line 111
  • #15 nautilus_bookmark_update_icon
    at nautilus-bookmark.c line 92
  • #16 bookmark_file_changed_callback
    at nautilus-bookmark.c line 184
  • #17 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #18 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3272
  • #19 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #20 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #21 nautilus_file_emit_changed
    at nautilus-file.c line 7119
  • #22 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 770
  • #23 emit_change_signals_for_all_files
    at nautilus-directory.c line 247
  • #24 emit_change_signals_for_all_files_in_all_directories
    at nautilus-directory.c line 277
  • #25 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #26 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3272
  • #27 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #28 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #29 ensure_valid_themes
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkicontheme.c line 1296
  • #30 choose_icon
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkicontheme.c line 1328
  • #31 nautilus_icon_info_lookup
    at nautilus-icon-info.c line 392
  • #32 nautilus_icon_info_lookup_from_name
    at nautilus-icon-info.c line 454
  • #33 get_type_icon_info
    at nautilus-pathbar.c line 1157
  • #34 nautilus_path_bar_update_button_appearance
    at nautilus-pathbar.c line 1260
  • #35 reload_icons
    at nautilus-pathbar.c line 1070
  • #36 change_icon_theme
    at nautilus-pathbar.c line 1080
  • #37 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #38 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3310
  • #39 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #40 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #41 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8634
  • #42 gtk_box_forall
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkbox.c line 1856
  • #43 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8637
  • #44 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8637
  • #45 gtk_toolbar_forall
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtktoolbar.c line 2561
  • #46 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8637
  • #47 gtk_box_forall
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkbox.c line 1856
  • #48 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8637
  • #49 gtk_box_forall
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkbox.c line 1856
  • #50 gtk_widget_propagate_hierarchy_changed_recurse
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8637
  • #51 _gtk_widget_propagate_hierarchy_changed
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 8675
  • #52 gtk_widget_unparent
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 3790
  • #53 gtk_paned_remove
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkpaned.c line 1910
  • #54 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #55 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3202
  • #56 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #57 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #58 gtk_widget_dispose
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 10655
  • #59 g_object_run_dispose
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 945
  • #60 nautilus_window_pane_dispose
    at nautilus-window-pane.c line 766
  • #61 g_object_unref
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 2709
  • #62 g_list_foreach
    at /build/buildd/glib2.0-2.30.0/./glib/glist.c line 938
  • #63 nautilus_window_destroy
    at nautilus-window.c line 727
  • #64 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #65 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3388
  • #66 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3003
  • #67 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #68 gtk_widget_dispose
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 10666
  • #69 g_object_run_dispose
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 945
  • #70 nautilus_window_delete_event_callback
    at nautilus-application.c line 469
  • #71 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmarshalers.c line 85
  • #72 g_closure_invoke
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c line 774
  • #73 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3342
  • #74 g_signal_emit_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3013
  • #75 g_signal_emit
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c line 3060
  • #76 gtk_widget_event_internal
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c line 6132
  • #77 gtk_main_do_event
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmain.c line 1783
  • #78 gdk_event_source_dispatch
    at /build/buildd/gtk+3.0-3.2.0/./gdk/x11/gdkeventsource.c line 360
  • #79 g_main_dispatch
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 2441
  • #80 g_main_context_dispatch
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3011
  • #81 g_main_context_iterate
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3089
  • #82 g_main_loop_run
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3297
  • #83 gtk_main
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmain.c line 1367
  • #84 g_application_run
    at /build/buildd/glib2.0-2.30.0/./gio/gapplication.c line 1323
  • #85 main
    at nautilus-main.c line 102

Comment 3 Dmitry Shachnev 2011-11-20 15:50:17 UTC
I can reproduce it for sure in this case:

1. Open a folder on desktop that contains a Windows application (it's Russian language training program for schools, you can download it from http://school-collection.edu.ru/catalog/rubr/e92131e2-85b9-ee62-b9c8-1d8c08dc1b5f/90147/)
2. Launch that program (using Wine, it runs in fullscreen mode)
3. Close it
4. Try to close folder window

Nautilus crashes, and desktop disappears.

I can provide any debug info if you request.
Comment 4 Dmitry Shachnev 2011-11-20 16:35:06 UTC
In my case, slot returned by nautilus_window_get_active_slot is NULL (probably because window->details->active_pane is NULL), so it's impossible to check value of slot->pending_location.

I will suggest changing

	<...>
	slot = nautilus_window_get_active_slot (sidebar->window);
	location = nautilus_window_slot_get_current_uri (slot);
	<...>

in nautilus-places-sidebar.c to something like that:

	<...>
	slot = nautilus_window_get_active_slot (sidebar->window);
	if (SLOT == NULL)
		location = ""; // Default location, or probably put home directory here
	else
		location = nautilus_window_slot_get_current_uri (slot);
	<...>
Comment 5 Cosimo Cecchi 2011-12-01 22:31:58 UTC
Created attachment 202562 [details] [review]
(untested) patch

I believe this patch should help with the crash, but I am not able to reproduce it. Could somebody who can try it and report if it solves the issue?
Thanks
Comment 6 Dmitry Shachnev 2011-12-02 16:55:03 UTC
Works fine now, thanks a lot!
Comment 7 Cosimo Cecchi 2011-12-02 21:18:21 UTC
Thanks for testing, I pushed this patch to master now.