Crash when deleting opened folder via side pane
Steps to reproduce
mkdir -p tree-crash/nested/
touch tree-crash/nested/1
thunar tree-crash/
- If the side pane is not visible, press Ctrl + e
- Expand the
tree-crash
folder in the side pane to reveal thenested
folder - Click on the
nested
folder in the side pane (or the main window) to open the folder - Right-click on the
nested
folder in the side pane and chooseMove to Trash
to trigger a crash
Debugging
Warnings
Gtk-CRITICAL **: 20:58:11.381: file ../gtk/gtk/a11y/gtktreeviewaccessible.c: line 343 (set_cell_data): should not be reached
thunar-CRITICAL **: 20:58:11.382: thunar_tree_view_model_get_file: assertion 'iter->stamp == ((((ThunarTreeViewModel*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((model)), ((thunar_tree_view_model_get_type ()))))))->stamp' failed
thunar-CRITICAL **: 20:58:11.382: thunar_tree_view_model_iter_next: assertion 'iter->stamp == ((((ThunarTreeViewModel*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((model)), ((thunar_tree_view_model_get_type ()))))))->stamp' failed
Backtrace
There's a NULL pointer dereference in thunar_tree_view_model_iter_nth_child
:
Thread 1 "thunar" received signal SIGSEGV, Segmentation fault.
0x0000555555dfcec6 in thunar_tree_view_model_iter_nth_child (model=0x50e0000606e0, iter=0x7fffffffba80, parent=0x0, n=0) at thunar-tree-view-model.c:1489
1489 if (n >= node->n_children)
(gdb) p node
$1 = (Node *) 0x0
(gdb) bt
#0 0x0000555555dfcec6 in thunar_tree_view_model_iter_nth_child (model=0x50e0000606e0, iter=0x7fffffffba80, parent=0x0, n=0) at thunar-tree-view-model.c:1489
#1 0x00007ffff7502f93 in gtk_tree_row_reference_unref_path (path=0x5020004cbeb0, model=0x50e0000606e0, depth=1) at ../gtk/gtk/gtktreemodel.c:2288
#2 0x00007ffff7503310 in gtk_tree_row_reference_unref_path (depth=<optimized out>, model=<optimized out>, path=<optimized out>) at ../gtk/gtk/gtktreemodel.c:2285
#3 gtk_tree_row_reference_free (reference=0x503000906280) at ../gtk/gtk/gtktreemodel.c:2522
#4 gtk_tree_row_reference_free (reference=0x503000906280) at ../gtk/gtk/gtktreemodel.c:2496
#5 0x00007ffff752b290 in gtk_tree_view_set_model (model=0x0, tree_view=0x51900011a760 [ExoTreeView]) at ../gtk/gtk/gtktreeview.c:11525
#6 gtk_tree_view_set_model (tree_view=0x51900011a760 [ExoTreeView], model=0x0) at ../gtk/gtk/gtktreeview.c:11473
#7 0x00007ffff7a51672 in object_set_property
(object=object@entry=0x51900011a760 [ExoTreeView], pspec=pspec@entry=0x50b000062560 [GParamObject], value=value@entry=0x7fffffffbcc0, nqueue=nqueue@entry=0x5020005ca1f0, user_specified=user_specified@entry=1) at ../glib/gobject/gobject.c:1838
#8 0x00007ffff7a5480f in g_object_set_valist (var_args=0x7fffffffbd70, first_property_name=<optimized out>, object=<optimized out>) at ../glib/gobject/gobject.c:2780
#9 g_object_set_valist (object=<optimized out>, first_property_name=<optimized out>, var_args=0x7fffffffbd70) at ../glib/gobject/gobject.c:2741
#10 0x00007ffff7a54c99 in g_object_set (_object=0x51900011a760, first_property_name=0x555555886e40 <str> "model") at ../glib/gobject/gobject.c:2956
#11 0x0000555555d5b91a in thunar_standard_view_set_current_directory (navigator=0x51a0000a5a70, current_directory=0x51100008bc80 [ThunarFile]) at thunar-standard-view.c:1597
#12 0x0000555555c403c3 in thunar_navigator_set_current_directory (navigator=0x51a0000a5a70, current_directory=0x51100008bc80 [ThunarFile]) at thunar-navigator.c:193
#13 0x0000555555d3c019 in thunar_standard_view_set_property (object=0x51a0000a5a70 [ThunarDetailsView], prop_id=1, value=0x7fffffffc500, pspec=0x50b00006b670 [GParamObject])
at thunar-standard-view.c:1178
#14 0x00007ffff7a514fb in object_set_property
(object=object@entry=0x51a0000a5a70 [ThunarDetailsView], pspec=0x50b00006b670 [GParamObject], value=value@entry=0x7fffffffc500, nqueue=nqueue@entry=0x5020005ca0b0, user_specified=user_specified@entry=1) at ../glib/gobject/gobject.c:1811
#15 0x00007ffff7a543e2 in g_object_setv (values=<optimized out>, names=<optimized out>, n_properties=<optimized out>, object=0x51a0000a5a70 [ThunarDetailsView])
at ../glib/gobject/gobject.c:2722
#16 g_object_setv (object=0x51a0000a5a70 [ThunarDetailsView], n_properties=<optimized out>, names=<optimized out>, values=<optimized out>) at ../glib/gobject/gobject.c:2693
#17 0x00007ffff7a54620 in g_object_set_property (object=<optimized out>, property_name=<optimized out>, value=<optimized out>) at ../glib/gobject/gobject.c:3022
#18 0x00007ffff7a42c4d in on_source_notify (source=<optimized out>, pspec=<optimized out>, context=<optimized out>) at ../glib/gobject/gbinding.c:556
#19 0x00007ffff7a416c0 in g_closure_invoke (closure=0x507000158620, return_value=0x0, n_param_values=2, param_values=0x7fffffffc750, invocation_hint=0x7fffffffc6a0)
at ../glib/gobject/gclosure.c:832
#20 0x00007ffff7a6fa36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffffffc840, detail=detail@entry=1465, instance=instance@entry=0x51a00001b2e0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc750) at ../glib/gobject/gsignal.c:3980
#21 0x00007ffff7a60a42 in signal_emit_valist_unlocked (instance=instance@entry=0x51a00001b2e0, signal_id=signal_id@entry=1, detail=detail@entry=1465, var_args=var_args@entry=0x7fffffffc9a0)
at ../glib/gobject/gsignal.c:3612
#22 0x00007ffff7a60c77 in g_signal_emit_valist (instance=0x51a00001b2e0, signal_id=1, detail=1465, var_args=var_args@entry=0x7fffffffc9a0) at ../glib/gobject/gsignal.c:3355
#23 0x00007ffff7a60d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3675
#24 0x00007ffff7a4c636 in g_object_dispatch_properties_changed (object=0x51a00001b2e0 [ThunarWindow], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../glib/gobject/gobject.c:1427
#25 0x00007ffff7a52d0f in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x51a00001b2e0 [ThunarWindow]) at ../glib/gobject/gobject.c:1551
#26 g_object_notify (property_name=<optimized out>, object=0x51a00001b2e0 [ThunarWindow]) at ../glib/gobject/gobject.c:1601
#27 g_object_notify (object=0x51a00001b2e0 [ThunarWindow], property_name=<optimized out>) at ../glib/gobject/gobject.c:1578
#28 0x0000555555e23d51 in thunar_window_set_current_directory (window=0x51a00001b2e0 [ThunarWindow], current_directory=0x51100008bc80 [ThunarFile]) at thunar-window.c:5233
#29 0x00007ffff7a416c0 in g_closure_invoke (closure=0x5070001583f0, return_value=0x0, n_param_values=2, param_values=0x7fffffffd030, invocation_hint=0x7fffffffcf80)
at ../glib/gobject/gclosure.c:832
#30 0x00007ffff7a6fa36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffffffd120, detail=detail@entry=0, instance=instance@entry=0x51a0000a5a70, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd030) at ../glib/gobject/gsignal.c:3980
#31 0x00007ffff7a60a42 in signal_emit_valist_unlocked (instance=instance@entry=0x51a0000a5a70, signal_id=signal_id@entry=363, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffd280)
at ../glib/gobject/gsignal.c:3612
#32 0x00007ffff7a60c77 in g_signal_emit_valist (instance=0x51a0000a5a70, signal_id=363, detail=0, var_args=var_args@entry=0x7fffffffd280) at ../glib/gobject/gsignal.c:3355
#33 0x00007ffff7a60d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3675
#34 0x0000555555c40948 in thunar_navigator_change_directory (navigator=0x51a0000a5a70, directory=0x51100008bc80 [ThunarFile]) at thunar-navigator.c:223
#35 0x0000555555e1e26b in thunar_window_update_directories (window=0x51a00001b2e0 [ThunarWindow], old_directory=0x5110000da740 [ThunarFile], new_directory=0x51100008bc80 [ThunarFile])
at thunar-window.c:2989
#36 0x0000555555d56384 in thunar_standard_view_current_directory_destroy (current_directory=0x5110000da740 [ThunarFile], standard_view=0x51a0000a5a70 [ThunarDetailsView])
at thunar-standard-view.c:2363
#37 0x00007ffff7a416c0 in g_closure_invoke (closure=0x5070002525c0, return_value=0x0, n_param_values=1, param_values=0x7fffffffd860, invocation_hint=0x7fffffffd7b0)
at ../glib/gobject/gclosure.c:832
#38 0x00007ffff7a6fa36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffffffd930, detail=detail@entry=0, instance=instance@entry=0x5110000da740, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd860) at ../glib/gobject/gsignal.c:3980
#39 0x00007ffff7a60a42 in signal_emit_valist_unlocked (instance=instance@entry=0x5110000da740, signal_id=signal_id@entry=280, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffda90)
at ../glib/gobject/gsignal.c:3612
#40 0x00007ffff7a60c77 in g_signal_emit_valist (instance=0x5110000da740, signal_id=280, detail=0, var_args=var_args@entry=0x7fffffffda90) at ../glib/gobject/gsignal.c:3355
#41 0x00007ffff7a60d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3675
#42 0x0000555555b88fc4 in thunar_file_dispose (object=0x5110000da740 [ThunarFile]) at thunar-file.c:468
#43 0x00007ffff7a4f900 in g_object_run_dispose (object=0x5110000da740 [ThunarFile]) at ../glib/gobject/gobject.c:1447
#44 g_object_run_dispose (object=0x5110000da740 [ThunarFile]) at ../glib/gobject/gobject.c:1440
#45 0x0000555555b825f5 in thunar_file_destroy (file=0x5110000da740 [ThunarFile]) at thunar-file.c:4378
#46 0x0000555555b96748 in thunar_folder_monitor
(monitor=0x507000152250 [GInotifyFileMonitor], event_file=0x5030000043c0, other_file=0x0, event_type=G_FILE_MONITOR_EVENT_MOVED_OUT, user_data=0x50c000411a00) at thunar-folder.c:1007
#51 0x00007ffff7a60d34 in <emit signal 'changed' on instance 0x507000152250 [GInotifyFileMonitor]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
at ../glib/gobject/gsignal.c:3675
#47 0x00007ffff709a559 in _g_cclosure_marshal_VOID__OBJECT_OBJECT_ENUMv
(closure=0x5070001522d0, return_value=<optimized out>, instance=0x507000152250, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x503000441e80)
at ../glib/gio/gmarshal-internal.c:1382
#48 0x00007ffff7a60b73 in _g_closure_invoke_va
(param_types=0x503000441e80, n_params=<optimized out>, args=0x7fffffffe0e0, instance=0x507000152250, return_value=0x0, closure=0x5070001522d0) at ../glib/gobject/gclosure.c:895
#49 signal_emit_valist_unlocked (instance=instance@entry=0x507000152250, signal_id=signal_id@entry=409, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffe0e0)
at ../glib/gobject/gsignal.c:3516
#50 0x00007ffff7a60c77 in g_signal_emit_valist (instance=0x507000152250, signal_id=409, detail=0, var_args=var_args@entry=0x7fffffffe0e0) at ../glib/gobject/gsignal.c:3355
#52 0x00007ffff715ef2c in g_file_monitor_source_dispatch (source=0x51000004b340, callback=<optimized out>, user_data=<optimized out>) at ../glib/gio/glocalfilemonitor.c:582
#53 0x00007ffff6f34f69 in g_main_dispatch (context=0x50f000000310) at ../glib/glib/gmain.c:3476
#54 0x00007ffff6f933a7 in g_main_context_dispatch_unlocked (context=0x50f000000310) at ../glib/glib/gmain.c:4284
#55 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x50f000000310, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#56 0x00007ffff6f33162 in g_main_context_iteration (context=context@entry=0x50f000000310, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4414
#57 0x00007ffff7106b66 in g_application_run (application=0x514000000930 [ThunarApplication], argc=<optimized out>, argv=0x7fffffffe5d8) at ../glib/gio/gapplication.c:2577
#58 0x0000555555a63dcc in main (argc=2, argv=0x7fffffffe5d8) at main.c:86
Version: 421d2e67