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 759776 - nautilus crashes when changing from folder view to list view before the folder contents had time to load
nautilus crashes when changing from folder view to list view before the folde...
Status: RESOLVED DUPLICATE of bug 759717
Product: nautilus
Classification: Core
Component: Crashers
3.18.x
Other Linux
: Normal critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-12-22 13:26 UTC by Hussam Al-Tayeb
Modified: 2016-01-15 17:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Hussam Al-Tayeb 2015-12-22 13:26:25 UTC
nautilus crashes when changing from folder view to list view before the folder contents had time to load.
to reproduce, open a large folder such as /usr/lib.
you need a slow disk. hdds will do. ssds are probably unable to reproduce this.
before the folder contents load, change view to 'list view'.
nautilus crashes.
valgring says:

(nautilus:30477): GLib-GIO-CRITICAL **: g_action_group_has_action: assertion 'G_IS_ACTION_GROUP (action_group)' failed

(nautilus:30477): GLib-GIO-CRITICAL **: g_action_group_get_action_enabled: assertion 'G_IS_ACTION_GROUP (action_group)' failed

(nautilus:30477): GLib-GIO-CRITICAL **: g_action_group_get_action_state: assertion 'G_IS_ACTION_GROUP (action_group)' failed

(nautilus:30477): GLib-CRITICAL **: g_variant_get_type: assertion 'value != NULL' failed

(nautilus:30477): GLib-CRITICAL **: g_variant_type_is_subtype_of: assertion 'g_variant_type_check (type)' failed

(nautilus:30477): GLib-CRITICAL **: g_variant_get_int32: assertion 'g_variant_is_of_type (value, G_VARIANT_TYPE_INT32)' failed

(nautilus:30477): GLib-CRITICAL **: g_variant_unref: assertion 'value != NULL' failed
==30477== Invalid read of size 8
==30477==    at 0x7450321: g_action_map_lookup_action (in /usr/lib/libgio-2.0.so.0.4600.2)
==30477==    by 0x444DAE: real_update_actions_state (nautilus-files-view.c:6169)
==30477==    by 0x435156: nautilus_canvas_view_update_actions_state (nautilus-canvas-view.c:1078)
==30477==    by 0x446A08: nautilus_files_view_update_toolbar_menus (nautilus-files-view.c:6728)
==30477==    by 0x446AC2: done_loading.part.48 (nautilus-files-view.c:3139)
==30477==    by 0x447459: done_loading (nautilus-files-view.c:7118)
==30477==    by 0x447459: nautilus_files_view_stop_loading (nautilus-files-view.c:7212)
==30477==    by 0x447981: nautilus_files_view_destroy (nautilus-files-view.c:2816)
==30477==    by 0x7733014: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774557D: ??? (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774DDFB: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774E12E: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x59FCC99: ??? (in /usr/lib/libgtk-3.so.0.1800.6)
==30477==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==30477== 
==30477== 
==30477== Process terminating with default action of signal 11 (SIGSEGV)
==30477==  Access not within mapped region at address 0x0
==30477==    at 0x7450321: g_action_map_lookup_action (in /usr/lib/libgio-2.0.so.0.4600.2)
==30477==    by 0x444DAE: real_update_actions_state (nautilus-files-view.c:6169)
==30477==    by 0x435156: nautilus_canvas_view_update_actions_state (nautilus-canvas-view.c:1078)
==30477==    by 0x446A08: nautilus_files_view_update_toolbar_menus (nautilus-files-view.c:6728)
==30477==    by 0x446AC2: done_loading.part.48 (nautilus-files-view.c:3139)
==30477==    by 0x447459: done_loading (nautilus-files-view.c:7118)
==30477==    by 0x447459: nautilus_files_view_stop_loading (nautilus-files-view.c:7212)
==30477==    by 0x447981: nautilus_files_view_destroy (nautilus-files-view.c:2816)
==30477==    by 0x7733014: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774557D: ??? (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774DDFB: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x774E12E: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.4600.2)
==30477==    by 0x59FCC99: ??? (in /usr/lib/libgtk-3.so.0.1800.6)
==30477==  If you believe this happened as a result of a stack
==30477==  overflow in your program's main thread (unlikely but
==30477==  possible), you can try to increase the size of the
==30477==  main thread stack using the --main-stacksize= flag.
==30477==  The main thread stack size used in this run was 8388608.
==30477== 


I'll reinstall gtk/glib with debug symbols later today but I thought I should report what I have so far.
I think this is the only nautilus crash I am seeing in 3.18.4
Comment 1 Hussam Al-Tayeb 2015-12-22 15:13:34 UTC
full backtrace with gdb

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5598321 in g_action_map_lookup_action (action_map=0x0, 
    action_name=0x4e7d80 "new-folder-with-selection") at gactionmap.c:87
87	  return G_ACTION_MAP_GET_IFACE (action_map)
(gdb) bt full
  • #0 g_action_map_lookup_action
    at gactionmap.c line 87
  • #1 real_update_actions_state
    at nautilus-files-view.c line 6169
  • #2 nautilus_canvas_view_update_actions_state
    at nautilus-canvas-view.c line 1078
  • #3 nautilus_files_view_update_toolbar_menus
    at nautilus-files-view.c line 6728
  • #4 done_loading
    at nautilus-files-view.c line 3139
  • #5 done_loading
  • #6 nautilus_files_view_stop_loading
    at nautilus-files-view.c line 7212
  • #7 nautilus_files_view_destroy
    at nautilus-files-view.c line 2816
  • #8 g_closure_invoke
    at gclosure.c line 801
  • #9 signal_emit_unlocked_R
  • #10 g_signal_emit_valist
    at gsignal.c line 3383
  • #11 g_signal_emit
    at gsignal.c line 3439
  • #12 gtk_widget_dispose
    at gtkwidget.c line 12010
  • #13 g_object_run_dispose
    at gobject.c line 1081
  • #14 gtk_widget_destroy
    at gtkwidget.c line 4656
  • #15 nautilus_window_slot_switch_new_content_view
    at nautilus-window-slot.c line 2237
  • #16 change_view
    at nautilus-window-slot.c line 2272
  • #17 setup_view
    at nautilus-window-slot.c line 1478
  • #18 nautilus_window_slot_set_content_view
    at nautilus-window-slot.c line 1646
  • #19 action_files_view_mode
    at nautilus-window-slot.c line 684
  • #20 g_closure_invoke
    at gclosure.c line 801
  • #21 signal_emit_unlocked_R
    at gsignal.c line 3627
  • #22 g_signal_emit_valist
    at gsignal.c line 3383
  • #23 g_signal_emit
    at gsignal.c line 3439
  • #24 g_simple_action_activate
    at gsimpleaction.c line 239
  • #25 g_action_activate
    at gaction.c line 397
  • #26 gtk_action_muxer_activate_action
  • #27 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #28 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #29 gtk_action_muxer_activate_action
  • #30 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #31 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #32 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #33 gtk_action_muxer_activate_action
    at gtkactionmuxer.c line 414
  • #34 gtk_real_button_clicked
    at gtkbutton.c line 2029
  • #35 g_closure_invoke
    at gclosure.c line 801
  • #36 signal_emit_unlocked_R
    at gsignal.c line 3697
  • #37 g_signal_emit_valist
    at gsignal.c line 3383
  • #38 g_signal_emit
    at gsignal.c line 3439
  • #39 gtk_button_do_release
  • #40 gtk_real_button_released
    at gtkbutton.c line 2017
  • #41 g_closure_invoke
    at gclosure.c line 801
  • #42 signal_emit_unlocked_R
    at gsignal.c line 3557
  • #43 g_signal_emit_valist
    at gsignal.c line 3383
  • #44 g_signal_emit
    at gsignal.c line 3439
  • #45 multipress_released_cb
    at gtkbutton.c line 613
  • #46 ffi_call_unix64
    from /usr/lib/libffi.so.6
  • #47 ffi_call
    from /usr/lib/libffi.so.6
  • #48 g_cclosure_marshal_generic_va
    at gclosure.c line 1600
  • #49 _g_closure_invoke_va
    at gclosure.c line 864
  • #50 g_signal_emit_valist
    at gsignal.c line 3292
  • #51 g_signal_emit
    at gsignal.c line 3439
  • #52 gtk_gesture_multi_press_end
    at gtkgesturemultipress.c line 273
  • #53 g_cclosure_marshal_VOID__BOXEDv
    at gmarshal.c line 1950
  • #54 _g_closure_invoke_va
    at gclosure.c line 864
  • #55 g_signal_emit_valist
    at gsignal.c line 3292
  • #56 g_signal_emit
    at gsignal.c line 3439
  • #57 _gtk_gesture_set_recognized
    at gtkgesture.c line 345
  • #58 _gtk_gesture_check_recognized
    at gtkgesture.c line 386
  • #59 gtk_gesture_handle_event
    at gtkgesture.c line 777
  • #60 gtk_gesture_single_handle_event
    at gtkgesturesingle.c line 221
  • #61 gtk_event_controller_handle_event
    at gtkeventcontroller.c line 230
  • #62 _gtk_widget_run_controllers
    at gtkwidget.c line 7321
  • #63 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 131
  • #64 _g_closure_invoke_va
    at gclosure.c line 864
  • #65 g_signal_emit_valist
    at gsignal.c line 3292
  • #66 g_signal_emit
    at gsignal.c line 3439
  • #67 gtk_widget_event_internal
    at gtkwidget.c line 7692
  • #68 propagate_event_up
    at gtkmain.c line 2517
  • #69 propagate_event
    at gtkmain.c line 2619
  • #70 gtk_main_do_event
    at gtkmain.c line 1850
  • #71 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #72 g_main_dispatch
    at gmain.c line 3154
  • #73 g_main_context_dispatch
    at gmain.c line 3769
  • #74 g_main_context_iterate
    at gmain.c line 3840
  • #75 g_main_context_iteration
    at gmain.c line 3901
  • #76 g_application_run
    at gapplication.c line 2311
  • #77 main
    at nautilus-main.c line 103

Comment 2 Hussam Al-Tayeb 2015-12-30 19:54:06 UTC
Perhaps make "view change" operations delay themselves if the current folder is still being loaded? That will probably avoid the crash.
Comment 3 Carlos Soriano 2016-01-15 17:03:26 UTC

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