Reproducible SIGSEGV when switching folder while folder content still loading
nautilus-41.0-1.fc35.x86_64
- Use list view
- Ctrl+C and Ctrl+X a file in folder
~
. - Navigate to folder
~/a/b/
which has already 9600 image files on a cold cache - Ctrl+V (while the file list is still building up and looks quite ugly)
- While folder is still loading, use breadcrumbs to navigate one level up to
~/a/
- Crash
Thread 1 "nautilus" received signal SIGSEGV, Segmentation fault.
g_type_check_instance_is_fundamentally_a (type_instance=0x7ffff758e300 <do_synthesize_crossing_event>, fundamental_type=80) at ../gobject/gtype.c:4090
4090 node = lookup_type_node_I (type_instance->g_class->g_type);
(gdb) thread apply all bt full
Thread 7 (Thread 0x7ffff0adb640 (LWP 44288) "dconf worker"):
#0 0x00007ffff6d2b7ff in __GI___poll (fds=0x5555557484b0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
sc_ret = -516
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007ffff7f1121c in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x5555557484b0, timeout=<optimized out>, context=0x55555588dc00) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7ffff7ec1b00 <g_poll>
poll_func = <optimized out>
ret = <optimized out>
errsv = <optimized out>
#2 g_main_context_iterate.constprop.0 (context=context@entry=0x55555588dc00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 1
allocated_nfds = 1
fds = 0x5555557484b0
begin_time_nsec = 49033234150748
#3 0x00007ffff7eb99e3 in g_main_context_iteration (context=context@entry=0x55555588dc00, may_block=may_block@entry=1) at ../glib/gmain.c:4240
retval = <optimized out>
#4 0x00007ffff0afc3ed in dconf_gdbus_worker_thread (user_data=0x55555588dc00) at ../gdbus/dconf-gdbus-thread.c:82
context = 0x55555588dc00
#5 0x00007ffff7eeb152 in g_thread_proxy (data=0x555555886920) at ../glib/gthread.c:827
thread = 0x555555886920
__func__ = "g_thread_proxy"
#6 0x00007ffff6cb3b17 in start_thread (arg=<optimized out>) at pthread_create.c:435
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737231304256, -1451664111164775539, 140737231304256, 17, 140737333901440, 0, 1451643927350682509, 1451648612560479117}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#7 0x00007ffff6d386a0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 5 (Thread 0x7ffff1b3e640 (LWP 44286) "pool-org.gnome."):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007ffff7f0ae5c in g_cond_wait_until (end_time=<optimized out>, mutex=0x55555574d010, cond=0x55555574d018) at ../glib/gthread-posix.c:1623
span = {tv_sec = 0, tv_nsec = 499999106}
success = <optimized out>
now = {tv_sec = 49037, tv_nsec = 188180894}
sampled = 380
res = <optimized out>
now = <optimized out>
span = <optimized out>
sampled = <optimized out>
res = <optimized out>
success = <optimized out>
#2 g_cond_wait_until (cond=0x55555574d018, mutex=0x55555574d010, end_time=<optimized out>) at ../glib/gthread-posix.c:1596
now = <optimized out>
span = <optimized out>
sampled = <optimized out>
res = <optimized out>
success = <optimized out>
#3 0x00007ffff7e8c471 in g_async_queue_pop_intern_unlocked (queue=0x55555574d010, wait=1, end_time=49037688180) at ../glib/gasyncqueue.c:422
retval = <optimized out>
__func__ = "g_async_queue_pop_intern_unlocked"
#4 0x00007ffff7eee1da in g_thread_pool_wait_for_new_task (pool=<optimized out>) at ../glib/gthreadpool.c:278
task = <optimized out>
task = <optimized out>
#5 g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:343
task = <optimized out>
pool = <optimized out>
#6 0x00007ffff7eeb152 in g_thread_proxy (data=0x55555584cea0) at ../glib/gthread.c:827
thread = 0x55555584cea0
__func__ = "g_thread_proxy"
#7 0x00007ffff6cb3b17 in start_thread (arg=<optimized out>) at pthread_create.c:435
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737248486976, -1451664111164775539, 140737248486976, 0, 140737333901440, 0, 1451641535590769549, 1451648612560479117}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#8 0x00007ffff6d386a0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 4 (Thread 0x7ffff23bd640 (LWP 44285) "pool-org.gnome."):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007ffff7f0a853 in g_cond_wait (cond=0x55555577a3b8, mutex=0x55555577a3b0) at ../glib/gthread-posix.c:1575
sampled = 0
#2 0x00007ffff7e8c48b in g_async_queue_pop_intern_unlocked (queue=0x55555577a3b0, wait=1, end_time=-1) at ../glib/gasyncqueue.c:419
retval = <optimized out>
__func__ = "g_async_queue_pop_intern_unlocked"
#3 0x00007ffff7eee057 in g_thread_pool_wait_for_new_task (pool=<optimized out>) at ../glib/gthreadpool.c:261
task = <optimized out>
task = <optimized out>
#4 g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:343
task = <optimized out>
pool = <optimized out>
#5 0x00007ffff7eeb152 in g_thread_proxy (data=0x5555557720c0) at ../glib/gthread.c:827
thread = 0x5555557720c0
__func__ = "g_thread_proxy"
#6 0x00007ffff6cb3b17 in start_thread (arg=<optimized out>) at pthread_create.c:435
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737257395776, -1451664111164775539, 140737257395776, 0, 140737333901440, 0, 1451640505335489421, 1451648612560479117}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#7 0x00007ffff6d386a0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 3 (Thread 0x7ffff2bbe640 (LWP 44283) "gdbus"):
#0 0x00007ffff6d2b7ff in __GI___poll (fds=0x5555560178a0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
sc_ret = -516
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007ffff7f1121c in g_main_context_poll (priority=<optimized out>, n_fds=5, fds=0x5555560178a0, timeout=<optimized out>, context=0x55555575f110) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7ffff7ec1b00 <g_poll>
poll_func = <optimized out>
ret = <optimized out>
errsv = <optimized out>
#2 g_main_context_iterate.constprop.0 (context=0x55555575f110, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 5
allocated_nfds = 6
fds = 0x5555560178a0
begin_time_nsec = 49037194494529
#3 0x00007ffff7ebb903 in g_main_loop_run (loop=0x55555575f200) at ../glib/gmain.c:4373
self = <optimized out>
__func__ = "g_main_loop_run"
#4 0x00007ffff729272a in gdbus_shared_thread_func (user_data=0x55555575f0e0) at ../gio/gdbusprivate.c:280
data = 0x55555575f0e0
#5 0x00007ffff7eeb152 in g_thread_proxy (data=0x555555756240) at ../glib/gthread.c:827
thread = 0x555555756240
__func__ = "g_thread_proxy"
#6 0x00007ffff6cb3b17 in start_thread (arg=<optimized out>) at pthread_create.c:435
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737265788480, -1451664111164775539, 140737265788480, 11, 140737333901440, 0, 1451639405286990733, 1451648612560479117}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#7 0x00007ffff6d386a0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 2 (Thread 0x7ffff33bf640 (LWP 44282) "gmain"):
#0 0x00007ffff6d2b7ff in __GI___poll (fds=0x555555749320, nfds=2, timeout=1857) at ../sysdeps/unix/sysv/linux/poll.c:29
sc_ret = -516
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007ffff7f1121c in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x555555749320, timeout=<optimized out>, context=0x55555574d2c0) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7ffff7ec1b00 <g_poll>
poll_func = <optimized out>
ret = <optimized out>
errsv = <optimized out>
#2 g_main_context_iterate.constprop.0 (context=context@entry=0x55555574d2c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = 1857
some_ready = <optimized out>
nfds = 2
allocated_nfds = 2
fds = 0x555555749320
begin_time_nsec = 49036083933778
#3 0x00007ffff7eb99e3 in g_main_context_iteration (context=0x55555574d2c0, may_block=may_block@entry=1) at ../glib/gmain.c:4240
retval = <optimized out>
#4 0x00007ffff7eb9a31 in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6140
No locals.
#5 0x00007ffff7eeb152 in g_thread_proxy (data=0x55555574c2a0) at ../glib/gthread.c:827
thread = 0x55555574c2a0
__func__ = "g_thread_proxy"
#6 0x00007ffff6cb3b17 in start_thread (arg=<optimized out>) at pthread_create.c:435
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737274181184, -1451664111164775539, 140737274181184, 0, 140737333901440, 0, 1451638307385975693, 1451648612560479117}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#7 0x00007ffff6d386a0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 1 (Thread 0x7ffff343ba40 (LWP 44276) "nautilus"):
#0 g_type_check_instance_is_fundamentally_a (type_instance=0x7ffff758e300 <do_synthesize_crossing_event>, fundamental_type=80) at ../gobject/gtype.c:4090
node = <optimized out>
#1 0x00007ffff7141447 in g_object_ref (_object=0x7ffff758e300 <do_synthesize_crossing_event>) at ../gobject/gobject.c:3452
_g_boolean_var_ = <optimized out>
object = 0x7ffff758e300 <do_synthesize_crossing_event>
old_val = <optimized out>
object_already_finalized = <optimized out>
__func__ = "g_object_ref"
#2 0x00007ffff7eb6bcb in g_list_copy_deep (list=list@entry=0x555555a7d0a0, func=0x7ffff7141430 <g_object_ref>, user_data=user_data@entry=0x0) at ../glib/glist.c:762
last = <optimized out>
new_list = 0x555556f1c6c0
#3 0x00005555555f73d1 in nautilus_files_view_set_selection (nautilus_files_view=0x555555f6c5e0, selection=0x555555a7d0a0) at ../src/nautilus-files-view.c:3242
view = <optimized out>
priv = 0x555555f6c280
pending_selection = <optimized out>
#4 0x00005555555a99cb in load_new_location (self=0x555555e5c190, location=<optimized out>, selection=0x555555a7d0a0, file_to_activate=0x0, tell_current_content_view=<optimized out>, tell_new_content_view=<optimized out>) at ../src/nautilus-window-slot.c:2056
view = 0x555555f6c5e0
__func__ = "load_new_location"
#5 0x00005555555a9bab in setup_view (self=0x555555e5c190, view=<optimized out>) at ../src/nautilus-window-slot.c:1988
ret = 1
old_location = <optimized out>
#6 0x00005555555aa800 in got_file_info_for_view_selection_callback (file=0x555555e48de0, callback_data=0x555555e5c190) at ../src/nautilus-window-slot.c:1847
error = 0x0
window = <optimized out>
self = 0x555555e5c190
viewed_file = <optimized out>
view = 0x555555f6c5e0
location = <optimized out>
app = <optimized out>
__func__ = "got_file_info_for_view_selection_callback"
#7 0x000055555564053a in call_ready_callbacks_at_idle (callback_data=callback_data@entry=0x555555c60150) at ../src/nautilus-directory-async.c:1980
directory = 0x555555c60150
node = 0x555555b07b60
next = <optimized out>
callback = 0x555555ff5d30
#8 0x00007ffff7eb852b in g_idle_dispatch (source=0x555556557410, callback=0x555555640460 <call_ready_callbacks_at_idle>, user_data=0x555555c60150) at ../glib/gmain.c:5897
again = <optimized out>
#9 0x00007ffff7ebc33f in g_main_dispatch (context=0x555555753db0) at ../glib/gmain.c:3381
dispatch = 0x7ffff7eb8510 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 49037194676769
was_in_call = <optimized out>
user_data = 0x555555c60150
callback = 0x555555640460 <call_ready_callbacks_at_idle>
cb_funcs = 0x7ffff7fa03e0 <g_source_callback_funcs>
cb_data = 0x555556027600
need_destroy = <optimized out>
source = 0x555556557410
current = 0x55555575fb30
i = 5
__func__ = <optimized out>
#10 g_main_context_dispatch (context=0x555555753db0) at ../glib/gmain.c:4099
No locals.
#11 0x00007ffff7f11288 in g_main_context_iterate.constprop.0 (context=context@entry=0x555555753db0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
max_priority = 200
timeout = 0
some_ready = 1
nfds = 3
allocated_nfds = 3
fds = <optimized out>
begin_time_nsec = 49037194233360
#12 0x00007ffff7eb99e3 in g_main_context_iteration (context=context@entry=0x555555753db0, may_block=may_block@entry=1) at ../glib/gmain.c:4240
retval = <optimized out>
#13 0x00007ffff725e195 in g_application_run (application=0x55555573e210, argc=-9932, argv=<optimized out>) at ../gio/gapplication.c:2569
arguments = 0x55555573d090
status = 0
context = 0x555555753db0
acquired_context = <optimized out>
__func__ = "g_application_run"
#14 0x000055555559316c in main (argc=1, argv=0x7fffffffdae8) at ../src/nautilus-main.c:81
retval = <optimized out>
application = 0x55555573e210
(gdb)