Skip to content

Nemo segfaults when unmounting a USB drive that is currently being used #134

@cyberknight777

Description

@cyberknight777

Distribution

Arch Linux (with Hyprland 0.49.0)

Package version

nemo 6.4.5

Frequency

Always

Bug description

When I try to unmount a drive by clicking the unmount option in nemo, it crashes nemo instead of unmounting. The drive was mounted as /run/media/cyberknight/Cruzer so I ran lsof | grep /run/media/cyberknight/Cruzer and saw that mpv was playing a video from it. After killing MPV, nemo unmounts the drive perfectly fine. When running nemo from the terminal and reproducing it, this is the output:

(nemo:8579): Nemo-WARNING **: 18:58:37.600: Current gtk theme is not known to have nemo support (Nordic) - checking...

(nemo:8585): Nemo-WARNING **: 18:58:37.881: Current gtk theme is not known to have nemo support (Nordic) - checking...

(nemo:8585): Nemo-WARNING **: 18:58:38.115: Action '90_new-launcher.nemo_action' is missing dependency: cinnamon-desktop-editor
fish: Job 1, 'nemo' terminated by signal SIGSEGV (Address boundary error)

I have attached the coredump file here: https://drive.google.com/file/d/1wPfPKoyw9YkZo2h062neS1961gqSK1SO/view?usp=sharing

I ran the coredump file through gdb via gdb /usr/bin/nemo l and ran bt full then got this:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/nemo'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x799c9229fe80 (LWP 8585))]
Function(s) ^std::(move|forward|as_const|(__)?addressof) will be skipped when stepping.
Function(s) ^std::(shared|unique)ptr<.*>::(get|operator) will be skipped when stepping.
Function(s) ^std::(basic_string|vector|array|deque|(forward
)?list|(unordered_|flat_)?(multi)?(map|set)|span)<.>::(c?r?(begin|end)|front|back|data|size|empty) will be skipped when stepping.
Function(s) ^std::(basic_string|vector|array|deque|span)<.
>::operator.] will be skipped when stepping.
(gdb) frame
#0 0x0000000000000000 in ?? ()
(gdb) ls -ltr
Undefined command: "ls". Try "help".
(gdb) bt full
#0 0x0000000000000000 in ??? ()
linuxmint/nemo#1 0x0000799c935856ad in g_hash_table_lookup () at /usr/lib/libglib-2.0.so.0
linuxmint/nemo#2 0x0000799c9434e689 in gdk_x11_atom_to_xatom_for_display () at /usr/lib/libgdk-3.so.0
linuxmint/nemo#3 0x0000799c93e53872 in ??? () at /usr/lib/libgtk-3.so.0
linuxmint/nemo#4 0x0000799c93766f2d in ??? () at /usr/lib/libgio-2.0.so.0
linuxmint/nemo#5 0x0000799c936c6e5c in ??? () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#6 0x0000799c936c7252 in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#7 0x0000799c918aadaf in ??? () at /usr/lib/gio/modules/libgioremote-volume-monitor.so
linuxmint/nemo#8 0x0000799c918a2a6e in ??? () at /usr/lib/gio/modules/libgioremote-volume-monitor.so
linuxmint/nemo#9 0x0000799c936a5812 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#10 0x0000799c936d5f85 in ??? () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#11 0x0000799c936c3a4c in g_signal_emitv () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#12 0x0000799c918a42d9 in ??? () at /usr/lib/gio/modules/libgioremote-volume-monitor.so
linuxmint/nemo#13 0x0000799c936a5812 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#14 0x0000799c936d6582 in ??? () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#15 0x0000799c936c6ce9 in ??? () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#16 0x0000799c936c6f72 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#17 0x0000799c936c7034 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
linuxmint/nemo#18 0x0000799c9380c5ac in ??? () at /usr/lib/libgio-2.0.so.0
linuxmint/nemo#19 0x0000799c937f54f9 in ??? () at /usr/lib/libgio-2.0.so.0
linuxmint/nemo#20 0x0000799c9359a1e4 in ??? () at /usr/lib/libglib-2.0.so.0
linuxmint/nemo#21 0x0000799c935fde97 in ??? () at /usr/lib/libglib-2.0.so.0
linuxmint/nemo#22 0x0000799c93599615 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
linuxmint/nemo#23 0x0000799c937d27d6 in g_application_run () at /usr/lib/libgio-2.0.so.0
linuxmint/nemo#24 0x00005f6f7d0fc5d8 in ??? ()
linuxmint/nemo#25 0x0000799c92fd26b5 in ??? () at /usr/lib/libc.so.6
linuxmint/nemo#26 0x0000799c92fd2769 in __libc_start_main () at /usr/lib/libc.so.6
linuxmint/nemo#27 0x00005f6f7d0fc655 in ??? ()
(gdb)

Steps to reproduce

  1. Plug in USB drive
  2. Mount it with nemo
  3. Open a file in USB drive
  4. Try to unmount USB drive in nemo
  5. Watch nemo crash

Expected behavior

It should prompt saying the drive is in use instead of crashing.

Additional information

I can provide more information if needed.

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