Skip to content

Segmentation Fault when moving files to the trash #3630

@YukiSoha

Description

@YukiSoha

Distribution

Archlinux

Package version

6.4.5

Frequency

Always

Bug description

Updated all the packages on my system earlier. Mounted some volumes on a remote server via sshfs(FUSE).
Attempting to move files to the trash on mounted volumes causes a segmentation fault.
The macro IS_IO_ERROR seems to assume error isnt NULL, but the gio documentation states "The argument will be left initialized to NULL by the virtual function if there are no errors.".
Im not sure if g_file_trash returning false and not setting error is expected behaviour, but bypassing this line with gdb causes the "Cannot move to trash" dialog to appear normally, and it deletes the file as expected.

Steps to reproduce

Mount a volume via sshfs, attempt to move a file to the trash.

Expected behavior

I honestly expect the dialog to appear as normal.

Additional information

Thread 6209 "pool-6" received signal SIGSEGV, Segmentation fault.
0x000055555561c214 in trash_files (job=<optimized out>, files=0x7fffb401dce0 = {...}, files_skipped=0x7fffd8880854) at ../nemo-6.4.5/libnemo-private/nemo-file-operations.c:2095
2095				if (!IS_IO_ERROR (error, NOT_SUPPORTED)) {
(gdb) bt
#0  0x000055555561c214 in trash_files (job=<optimized out>, files=0x7fffb401dce0 = {...}, files_skipped=0x7fffd8880854) at ../nemo-6.4.5/libnemo-private/nemo-file-operations.c:2095
#1  delete_job (io_job=<optimized out>, cancellable=<optimized out>, user_data=<optimized out>) at ../nemo-6.4.5/libnemo-private/nemo-file-operations.c:2267
#2  0x00007ffff7331c4a in io_job_thread (task=<optimized out>, source_object=<optimized out>, task_data=0x7fffe8009b30, cancellable=<optimized out>) at ../glib/gio/gioscheduler.c:75
#3  0x00007ffff7367600 in g_task_thread_pool_thread (thread_data=0x5555560def80, pool_data=<optimized out>) at ../glib/gio/gtask.c:1585
#4  0x00007ffff719b283 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/glib/gthreadpool.c:336
#5  0x00007ffff71998bc in g_thread_proxy (data=0x7fffe00015f0) at ../glib/glib/gthread.c:893
#6  0x00007ffff6a969cb in start_thread (arg=<optimized out>) at pthread_create.c:448
#7  0x00007ffff6b1aa0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) info locals
to_delete = 0x0
file = 0x5555561d1fa0
files_trashed = 0
details = 0x0
response = <optimized out>
l = 0x7fffb401dce0 = {0x5555561d1fa0}
error = 0x0
total_files = 1
primary = 0x7fffbc017ed0 "Cannot move file to trash, do you want to delete immediately?"
secondary = 0x7fffbc0081f0 "The file \"vanilla-server-50006_server\" cannot be moved to the trash."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions