Bug 2189241 - libmount failure to mount ntfs
Summary: libmount failure to mount ntfs
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: util-linux
Version: rawhide
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Karel Zak
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-04-24 13:49 UTC by publiccontact2020
Modified: 2023-05-31 13:54 UTC (History)
4 users (show)

Fixed In Version: util-linux-2.39-4.fc39
Clone Of:
Environment:
Last Closed: 2023-05-31 13:54:52 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
coredump udisksd (2.16 MB, application/zip)
2023-05-10 15:57 UTC, publiccontact2020
no flags Details
coredump info (13.76 KB, text/plain)
2023-05-11 16:40 UTC, publiccontact2020
no flags Details

Description publiccontact2020 2023-04-24 13:49:40 UTC
The drop down list to specify package shows rust-libmount and not simply libmount when attempting to make a selection.

The rawhide package involved is:
libmount                    x86_64             2.39-0.5.fc39

Subsequent to click to open ntfs volume in file manager these messages have appeared:
Unable to mount (ntfs partition)
Remote peer disconnected
Operation was cancelled

Am using udev rule:

udev rule sets env variable UDISKS_FILESYSTEM_SHARED. udisks2 automounts in /media/ not /media/[username]/ 

/etc/udev/rules.d/99-udisks2.rules:

ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

Installing libmount-devel 2.39-0.5.fc39 x86_64 does not produce failure to mount.

Reproducible: Always

Steps to Reproduce:
1.Boot rawhide to desktop.
2.Open file manager and click to open ntfs volume.
3.Failure to mount volume.
Actual Results:  

Subsequent to click to open ntfs volume in file manager these messages have appeared:

Unable to mount (ntfs partition)
Remote peer disconnected
Operation was cancelled

Expected Results:  
Mount ntfs volumes r/w as was the prior functionality

This issue is specific to Fedora and does not occur with other distros running on the same hardware.

Ntfs volumes have been checked for errors.

Comment 1 Fabio Valentini 2023-04-24 13:53:02 UTC
(In reply to publiccontact2020 from comment #0)
> The drop down list to specify package shows rust-libmount and not simply
> libmount when attempting to make a selection.

Yeah, that's a bit non-obvious ... libmount is built as part of the util-linux package.

Comment 2 Karel Zak 2023-04-25 15:57:24 UTC
Can you reproduce the problem on the command line by mount(8)? If yes, then it would be nice to have output from

  LIBMOUNT_DEBUG=all mount /dev/foo /mnt/test

anyway, I'm able to mount ntfs with the latest upstream mount(8).

Comment 3 publiccontact2020 2023-04-25 16:31:57 UTC
cli: sudo mount -t ntfs /dev/sdaX /media/NTFS  would mount ntfs with the problem version of libmount cited above.

Using the GUI file manager would not mount the NTFS volume but would throw error notifications as noted above.

Am using the cli exclude option for updates, excluding libmount 2.39-0.5.fc39 until a bug fix package update is issued.

installed:
Last metadata expiration check: 0:56:54 ago on Tue 25 Apr 2023 01:29:07 PM -02.
Package libmount-2.38.1-4.fc38.x86_64 is already installed.

note:
Installing libmount-devel 2.39-0.5.fc39 x86_64 does not produce failure to mount.
Installing libmount 2.39-0.5.fc39 does produce error message and failure to mount via file manager GUI.

libmount-2.38.1-4.fc38.x86_64 functions well both cli and with file manager GUI.

Comment 4 publiccontact2020 2023-04-27 17:20:06 UTC
from terminal, ntfs parttion with libmount 2.39-0.5.fc39 installed:

LIBMOUNT_DEBUG=all mount /dev/sda2 /mnt/test
9734: libmount: don't print memory addresses (SUID executable).
9734: libmount:     INIT: library debug mask: 0x1ffffff
9734: libmount:     INIT: library version: 2.39.0
9734: libmount:     INIT:     feature: selinux
9734: libmount:     INIT:     feature: btrfs
9734: libmount:     INIT:     feature: namespaces
9734: libmount:     INIT:     feature: idmapping
9734: libmount:     INIT:     feature: fd-based-mount
9734: libmount:     INIT:     feature: assert
9734: libmount:     INIT:     feature: debug
Available "LIBMOUNT_DEBUG=<name>[,...]|<mask>" debug masks:
   all      [0xffffff] : info about all subsystems
   cache    [0x000004] : paths and tags cache
   cxt      [0x000200] : library context (handler)
   diff     [0x000400] : mountinfo changes tracking
   fs       [0x000040] : FS abstraction
   help     [0x000001] : this help
   hook     [0x008000] : hooks functionality
   locks    [0x000010] : mtab and utab locking
   loop     [0x002000] : loop devices routines
   options  [0x000008] : mount options parsing
   optlist  [0x010000] : mount options container
   tab      [0x000020] : fstab, mtab, mountinfo routines
   update   [0x000080] : mtab, utab updates
   utils    [0x000100] : misc library utils
   monitor  [0x000800] : mount tables monitor
   btrfs    [0x001000] : btrfs specific routines
   verity   [0x004000] : verity specific routines
9734: libmount:      CXT: ----> allocate [RESTRICTED]
9734: libmount:       FS: alloc
9734: libmount:      CXT: force UNRESTRICTED
9734: libmount:      CXT: mount: preparing
9734: libmount:      CXT: use default optsmode
9734: libmount:  OPTLIST: alloc
9734: libmount:  OPTLIST: registr map 0x7f7eccbbd6e0
9734: libmount:  OPTLIST: registr map 0x7f7eccbbd4e0
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd6e0]
9734: libmount:      CXT: OPTSMODE (file-part): force=0, fstab=1, mtab=1
9734: libmount:      CXT: fstab not required -- skip
9734: libmount:  OPTLIST: merging
9734: libmount:      CXT: mount: evaluating permissions
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd4e0]
9734: libmount:      CXT: perms: superuser [rc=0]
9734: libmount:      CXT: --> preparing options
9734: libmount:      CXT: ---> stage:prep-options
9734: libmount:      CXT: calling __selinux [first]
9734: libmount:     HOOK:  SELinux fix options
9734: libmount:      CXT: calling __idmap [first]
9734: libmount:      CXT: calling __owner [first]
9734: libmount:      CXT: <--- stage:prep-options [rc=0 status=1]
9734: libmount:      CXT: <-- preparing options done [rc=0]
9734: libmount:      CXT: --> preparing source path
9734: libmount:      CXT: srcpath '/dev/sda2'
9734: libmount:    CACHE: alloc
9734: libmount:    CACHE: canonicalize path /dev/sda2
9734: libmount:    CACHE: add entry [ 1] (path): /dev/sda2: /dev/sda2
9734: libmount:      CXT: ---> stage:prep-source
9734: libmount:      CXT: calling __loopdev [first]
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd4e0]
9734: libmount:      CXT: <--- stage:prep-source [rc=0 status=1]
9734: libmount:      CXT: final srcpath '/dev/sda2'
9734: libmount:      CXT: --> preparing fstype
9734: libmount:    CACHE: get /dev/sda2 FS type
9734: libmount:    CACHE: tags for /dev/sda2 requested
9734: libmount:      CXT: FS type: (null) [rc=0]
9734: libmount:      CXT: --> preparing target path
9734: libmount:    CACHE: canonicalize path /mnt/test
9734: libmount:    CACHE: add entry [ 2] (path): /mnt/test: /mnt/test
9734: libmount:      CXT: ---> stage:prep-target
9734: libmount:      CXT: calling __mkdir [first]
9734: libmount:      CXT: calling __subdir [first]
9734: libmount:      CXT: <--- stage:prep-target [rc=0 status=1]
9734: libmount:      CXT: final target '/mnt/test' [rc=0]
9734: libmount:      CXT: checking for helper
9734: libmount:      CXT: ---> stage:prep
9734: libmount:      CXT: calling __mount [first]
9734: libmount:     HOOK: prepare mount
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd6e0]
9734: libmount:  OPTLIST: return attrs set=0x00000000, clr=0x00000000 
9734: libmount:     HOOK: initialize API fds
9734: libmount:      CXT:  alloc '__mount' data
9734: libmount:      CXT:  appending mount hook from __mount
9734: libmount:      CXT:  appending post-mount hook from __mount
9734: libmount:     HOOK: prepare mount done [rc=0]
9734: libmount:      CXT: calling __legacy-mount [first]
9734: libmount:      CXT: <--- stage:prep [rc=0 status=1]
9734: libmount:      CXT: --> prepare update
9734: libmount:      CXT: utab path initialized to: /run/mount/utab
9734: libmount:      CXT: checking for writable tab files
9734: libmount:    UTILS: utab: /run/mount/utab
9734: libmount:    UTILS: try write /run/mount/utab dir: (null)
9734: libmount:    UTILS:  access FAILED
9734: libmount:   UPDATE: allocate
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd6e0]
9734: libmount:   UPDATE: resetting FS [target=(null), flags=0x00000000]
9734: libmount:   UPDATE: FS template:
9734: libmount:   UPDATE: ------ fs:
source: /dev/sda2
target: /mnt/test
fstype: (null)
9734: libmount:   UPDATE: prepare utab entry
9734: libmount:   UPDATE: utab entry unnecessary (no options)
9734: libmount:      CXT: mount: do mount
9734: libmount:      CXT: ---> stage:pre-mount
9734: libmount:      CXT: <--- stage:pre-mount [rc=0 status=1]
9734: libmount:      CXT: trying to mount by FS pattern '(null)'
9734: libmount:    UTILS: reading filesystems list from: /etc/filesystems
9734: libmount:    UTILS: reading filesystems list from: /proc/filesystems
9734: libmount:      CXT:  ##### trying 'ext4'
9734: libmount:      CXT: checking for helper
9734: libmount:      CXT: /sbin/mount.ext4          ... not found
9734: libmount:      CXT: /sbin/fs.d/mount.ext4     ... not found
9734: libmount:      CXT: /sbin/fs/mount.ext4       ... not found
9734: libmount:  OPTLIST: append 0x00008000
9734: libmount:  OPTLIST:  added silent [id=0x00008000 map=0x7f7eccbbd6e0]
9734: libmount:      CXT: ---> stage:mount
9734: libmount:      CXT: calling __mount [active]
9734: libmount:     HOOK:  new FS 'ext4'
9734: libmount:     HOOK:  fsopen(ext4)
9734: libmount:      CXT: syscall 'fsopen' [Operation not permitted]
9734: libmount:     HOOK: create FS done [rc=-1, id=0]
9734: libmount:      CXT: <--- stage:mount [rc=-1 status=-1]
9734: libmount:  OPTLIST: remove 0x00008000
9734: libmount:  OPTLIST:  remove silent
9734: libmount:      CXT: mnt_context_do_mount() done [rc=-1]
9734: libmount:     HOOK: deinit '__loopdev'
9734: libmount:     HOOK: deinit '__mkdir'
9734: libmount:     HOOK: deinit '__selinux'
9734: libmount:     HOOK: deinit '__subdir'
9734: libmount:     HOOK: deinit '__mount'
9734: libmount:      CXT:  removing mount hook from __mount
9734: libmount:      CXT:  removing post-mount hook from __mount
9734: libmount:      CXT:  free '__mount' data
9734: libmount:     HOOK: deinit '__legacy-mount'
9734: libmount:     HOOK: deinit '__idmap'
9734: libmount:     HOOK: deinit '__owner'
9734: libmount:      CXT: mnt_context_mount() done [rc=-1]
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd6e0]
9734: libmount:  OPTLIST: return flags 0x00000000 [map=0x7f7eccbbd4e0]
9734: libmount:      CXT: excode: rc=32 message="must be superuser to use mount"
mount: /mnt/test: must be superuser to use mount.
       dmesg(1) may have more information after failed mount system call.
9734: libmount:      CXT: <---- reset [status=0] ---->
9734: libmount:       FS: free [refcount=0]
9734: libmount:     HOOK: deinit '__loopdev'
9734: libmount:     HOOK: deinit '__mkdir'
9734: libmount:     HOOK: deinit '__selinux'
9734: libmount:     HOOK: deinit '__subdir'
9734: libmount:     HOOK: deinit '__mount'
9734: libmount:     HOOK: deinit '__legacy-mount'
9734: libmount:     HOOK: deinit '__idmap'
9734: libmount:     HOOK: deinit '__owner'
9734: libmount:    CACHE: free [refcount=0]
9734: libmount:   UPDATE: free
9734: libmount:      CXT: Setting (null) as target namespace
9734: libmount:      CXT: free

Comment 5 Karel Zak 2023-05-10 10:49:40 UTC
You cannot use "mount /dev/sda2 /mnt/test" as a non-root user. You need a proper entry in fstab (with "user" option), but /sbin/mount.ntfs will still don't like it as you need a suid bit for this binary (see https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ), etc.


I think we should go back to the beginning ;-) The problem is with GUI (file manager); I guess we're talking about gnome/udisks. 

Let's assign it to the udisks maintainer to get more light on the problem; from the command line, it behaves as expected.

Comment 6 Tomáš Bžatek 2023-05-10 11:13:38 UTC
(In reply to Karel Zak from comment #5)
> I think we should go back to the beginning ;-) The problem is with GUI (file
> manager); I guess we're talking about gnome/udisks. 

Right, let's go slow from the beginning, there are multiple actors in the play.

(In reply to publiccontact2020 from comment #0)
> Unable to mount (ntfs partition)
> Remote peer disconnected
> Operation was cancelled

This looks important. Can you check coredumpctl or abrt for any crashes?

What does `udisksctl mount -b /dev/sda2` do when called as user from the running desktop session?
Are there any messages from `systemctl status udisks2.service`?

Do you have ntfs-3g installed?

Comment 7 publiccontact2020 2023-05-10 15:57:21 UTC
Created attachment 1963794 [details]
coredump udisksd

Comment 8 publiccontact2020 2023-05-10 15:59:27 UTC
From cli:
udisksctl mount -b /dev/sda22
Error mounting /dev/sda22: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
--------------------------------
Fails to mount ntfs partition:
● udisks2.service - Disk Manager
     Loaded: loaded (/usr/lib/systemd/system/udisks2.service; disabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Wed 2023-05-10 13:27:47 -02; 53s ago
       Docs: man:udisks(8)
   Main PID: 5002 (udisksd)
        CPU: 1.225s
     CGroup: /system.slice/udisks2.service
             └─5002 /usr/libexec/udisks2/udisksd

May 10 13:27:46 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 10 13:27:46 localhost.localdomain udisksd[5002]: udisks daemon version 2.9.4 starting
May 10 13:27:47 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 10 13:27:47 localhost.localdomain udisksd[5002]: Acquired the name org.freedesktop.UDisks2 on the system message bus
---------------------------
rpm -qa | grep ntfs-3g:
ntfs-3g-libs-2022.10.3-2.fc38.x86_64
ntfs-3g-2022.10.3-2.fc38.x86_64
ntfs-3g-system-compression-1.0-13.fc39.x86_64

Note: Pcmanfm installed and also fails to mount ntfs from GUI.
ntfs does mount from cli as previously noted.

Comment 9 Tomáš Bžatek 2023-05-10 16:02:57 UTC
(In reply to publiccontact2020 from comment #7)
> Created attachment 1963794 [details]
> coredump udisksd

Thanks, but could you please attach processed coredumps, e.g. via `coredumpctl dump`?
See also https://fedoramagazine.org/file-better-bugs-coredumpctl/

Comment 10 publiccontact2020 2023-05-11 16:40:44 UTC
Created attachment 1964046 [details]
coredump info

Comment 11 publiccontact2020 2023-05-11 16:42:36 UTC
sudo coredumpctl dump 1442 > coredump_051123.txt
           PID: 1442 (udisksd)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 6 (ABRT)
     Timestamp: Thu 2023-05-11 14:00:06 -02 (36min ago)
  Command Line: /usr/libexec/udisks2/udisksd
    Executable: /usr/libexec/udisks2/udisksd
 Control Group: /system.slice/udisks2.service
          Unit: udisks2.service
         Slice: system.slice
       Boot ID: 
    Machine ID: 
      Hostname: localhost.localdomain
       Storage: /var/lib/systemd/coredump/core.udisksd.0.6bb64392d2ac48a28083dd93ccf311b8.1442.1683820806000000.zst (present)
  Size on Disk: 761.1K
       Package: udisks2/2.9.4-6.fc38
      build-id: 98417ebfa233a52eed7573e936cbd372a440c12f
       Message: Process 1442 (udisksd) of user 0 dumped core.
                
                Module libbd_fs.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libparted.so.2 from rpm parted-3.6-1.fc39.x86_64
                Module libparted-fs-resize.so.0 from rpm parted-3.6-1.fc39.x86_64
                Module libbd_part_err.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libbd_part.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libgmp.so.10 from rpm gmp-6.2.1-4.fc38.x86_64
                Module libmpfr.so.6 from rpm mpfr-4.1.1-3.fc38.x86_64
                Module libbytesize.so.1 from rpm libbytesize-2.8-21.fc39.x86_64
                Module libbd_mdraid.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libjson-c.so.5 from rpm json-c-0.16-4.fc38.x86_64
                Module libargon2.so.1 from rpm argon2-20190702-2.fc38.x86_64
                Module libssl.so.3 from rpm openssl-3.0.8-2.fc39.x86_64
                Module libdevmapper.so.1.02 from rpm lvm2-2.03.21-1.fc39.x86_64
                Module libnspr4.so from rpm nss-3.89.0-2.fc39.x86_64
                Module libplc4.so from rpm nss-3.89.0-2.fc39.x86_64
                Module libplds4.so from rpm nss-3.89.0-2.fc39.x86_64
                Module libcryptsetup.so.12 from rpm cryptsetup-2.6.1-1.fc39.x86_64
                Module libbd_crypto.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libbd_loop.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libbd_swap.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libcrypto.so.3 from rpm openssl-3.0.8-2.fc39.x86_64
                Module libpcre2-8.so.0 from rpm pcre2-10.42-1.fc38.1.x86_64
                Module libffi.so.8 from rpm libffi-3.4.4-2.fc38.x86_64
                Module libz.so.1 from rpm zlib-1.2.13-3.fc38.x86_64
                Module liblz4.so.1 from rpm lz4-1.9.4-3.fc39.x86_64
                Module libzstd.so.1 from rpm zstd-1.5.5-1.fc39.x86_64
                Module liblzma.so.5 from rpm xz-5.4.3-1.fc39.x86_64
                Module libcap.so.2 from rpm libcap-2.48-6.fc38.x86_64
                Module libattr.so.1 from rpm attr-2.5.1-7.fc39.x86_64
                Module libselinux.so.1 from rpm libselinux-3.5-1.fc39.x86_64
                Module libblkid.so.1 from rpm util-linux-2.39-0.5.fc39.x86_64
                Module libkmod.so.2 from rpm kmod-30-5.fc39.x86_64
                Module libudev.so.1 from rpm systemd-253.2-1.fc39.x86_64
                Module libglib-2.0.so.0 from rpm glib2-2.76.2-1.fc39.x86_64
                Module libgobject-2.0.so.0 from rpm glib2-2.76.2-1.fc39.x86_64
                Module libgio-2.0.so.0 from rpm glib2-2.76.2-1.fc39.x86_64
                Module libudisks2.so.0 from rpm udisks2-2.9.4-6.fc38.x86_64
                Module libsystemd.so.0 from rpm systemd-253.2-1.fc39.x86_64
                Module libacl.so.1 from rpm acl-2.3.1-7.fc39.x86_64
                Module libpolkit-gobject-1.so.0 from rpm polkit-122-5.fc39.x86_64
                Module libuuid.so.1 from rpm util-linux-2.39-0.5.fc39.x86_64
                Module libmount.so.1 from rpm util-linux-2.39-0.5.fc39.x86_64
                Module libbd_utils.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libblockdev.so.2 from rpm libblockdev-2.28-5.fc39.x86_64
                Module libgudev-1.0.so.0 from rpm libgudev-237-4.fc38.x86_64
                Module libgmodule-2.0.so.0 from rpm glib2-2.76.2-1.fc39.x86_64
                Module udisksd from rpm udisks2-2.9.4-6.fc38.x86_64
                Stack trace of thread 1453:
                #0  0x00007f37b3e39304 __pthread_kill_implementation (libc.so.6 + 0x8f304)
                #1  0x00007f37b3de81de raise (libc.so.6 + 0x3e1de)
                #2  0x00007f37b3dd087f abort (libc.so.6 + 0x2687f)
                #3  0x00007f37b3dd079b __assert_fail_base.cold (libc.so.6 + 0x2679b)
                #4  0x00007f37b3de0617 __assert_fail (libc.so.6 + 0x36617)
                #5  0x00007f37b45aea0e hook_attach_target (libmount.so.1 + 0x31a0e)
                #6  0x00007f37b458d10e mnt_context_call_hooks (libmount.so.1 + 0x1010e)
                #7  0x00007f37b45a2d5b mnt_context_do_mount (libmount.so.1 + 0x25d5b)
                #8  0x00007f37b45a4eb7 mnt_context_mount (libmount.so.1 + 0x27eb7)
                #9  0x00007f37b0f5d05f do_mount (libbd_fs.so.2 + 0x705f)
                #10 0x00007f37b0f5e820 bd_fs_mount (libbd_fs.so.2 + 0x8820)
                #11 0x0000562dbca8e134 handle_mount (udisksd + 0x36134)
                #12 0x00007f37b3acabe6 ffi_call_unix64 (libffi.so.8 + 0x7be6)
                #13 0x00007f37b3ac74bf ffi_call_int.lto_priv.0 (libffi.so.8 + 0x44bf)
                #14 0x00007f37b3aca18e ffi_call (libffi.so.8 + 0x718e)
                #15 0x00007f37b4172ad2 g_cclosure_marshal_generic (libgobject-2.0.so.0 + 0x1aad2)
                #16 0x00007f37b416c4ea g_closure_invoke (libgobject-2.0.so.0 + 0x144ea)
                #17 0x00007f37b419b315 signal_emit_unlocked_R.isra.0 (libgobject-2.0.so.0 + 0x43315)
                #18 0x00007f37b43e04eb _udisks_filesystem_skeleton_handle_method_call (libudisks2.so.0 + 0x544eb)
                #19 0x00007f37b42e3292 dispatch_in_thread_func (libgio-2.0.so.0 + 0x129292)
                #20 0x00007f37b426ffa4 g_task_thread_pool_thread (libgio-2.0.so.0 + 0xb5fa4)
                #21 0x00007f37b409bfb2 g_thread_pool_thread_proxy.lto_priv.0 (libglib-2.0.so.0 + 0x8cfb2)
                #22 0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #23 0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #24 0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                
                Stack trace of thread 1452:
                #0  0x00007f37b3eb663d syscall (libc.so.6 + 0x10c63d)
                #1  0x00007f37b40c05ee g_cond_wait (libglib-2.0.so.0 + 0xb15ee)
                #2  0x00007f37b403604b g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x2704b)
                #3  0x00007f37b409b473 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8c473)
                #4  0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #5  0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #6  0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                
                Stack trace of thread 1529:
                #0  0x00007f37b3eb663d syscall (libc.so.6 + 0x10c63d)
                #1  0x00007f37b40c05ee g_cond_wait (libglib-2.0.so.0 + 0xb15ee)
                #2  0x00007f37b403604b g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x2704b)
                #3  0x00007f37b40360ac g_async_queue_pop (libglib-2.0.so.0 + 0x270ac)
                #4  0x0000562dbca7ea59 probe_request_thread_func (udisksd + 0x26a59)
                #5  0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #6  0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #7  0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                
                Stack trace of thread 1780:
                #0  0x00007f37b3eb0e2d __poll (libc.so.6 + 0x106e2d)
                #1  0x00007f37b40c93a9 g_main_context_iterate.isra.0 (libglib-2.0.so.0 + 0xba3a9)
                #2  0x00007f37b406a99f g_main_loop_run (libglib-2.0.so.0 + 0x5b99f)
                #3  0x0000562dbcaac7dc udisks_state_thread_func (udisksd + 0x547dc)
                #4  0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #5  0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #6  0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                
                Stack trace of thread 1442:
                #0  0x00007f37b3ebee19 prctl (libc.so.6 + 0x114e19)
                #1  0x00007f37b45b2433 safe_getenv (libmount.so.1 + 0x35433)
                #2  0x00007f37b4599ac4 mnt_get_fstab_path (libmount.so.1 + 0x1cac4)
                #3  0x00007f37b459b00d mnt_table_parse_fstab (libmount.so.1 + 0x1e00d)
                #4  0x0000562dbcab8645 find_fstab_entries.isra.0 (udisksd + 0x60645)
                #5  0x0000562dbcab8a5f update_hints.isra.0 (udisksd + 0x60a5f)
                #6  0x0000562dbca82cf4 udisks_linux_block_update (udisksd + 0x2acf4)
                #7  0x0000562dbca8342f block_device_update (udisksd + 0x2b42f)
                #8  0x0000562dbca80997 udisks_linux_block_object_uevent (udisksd + 0x28997)
                #9  0x0000562dbca81ac4 on_mount_monitor_mount_removed (udisksd + 0x29ac4)
                #10 0x00007f37b416c4ea g_closure_invoke (libgobject-2.0.so.0 + 0x144ea)
                #11 0x00007f37b419ae16 signal_emit_unlocked_R.isra.0 (libgobject-2.0.so.0 + 0x42e16)
                #12 0x00007f37b418bcbd g_signal_emit_valist (libgobject-2.0.so.0 + 0x33cbd)
                #13 0x00007f37b418bf33 g_signal_emit (libgobject-2.0.so.0 + 0x33f33)
                #14 0x0000562dbcaabb13 reload_mounts (udisksd + 0x53b13)
                #15 0x0000562dbcaabbcd mounts_changed_event (udisksd + 0x53bcd)
                #16 0x00007f37b406b39c g_main_context_dispatch (libglib-2.0.so.0 + 0x5c39c)
                #17 0x00007f37b40c9438 g_main_context_iterate.isra.0 (libglib-2.0.so.0 + 0xba438)
                #18 0x00007f37b406a99f g_main_loop_run (libglib-2.0.so.0 + 0x5b99f)
                #19 0x0000562dbca785c6 main (udisksd + 0x205c6)
                #20 0x00007f37b3dd1b4a __libc_start_call_main (libc.so.6 + 0x27b4a)
                #21 0x00007f37b3dd1c0b __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x27c0b)
                #22 0x0000562dbca786e5 _start (udisksd + 0x206e5)
                
                Stack trace of thread 1451:
                #0  0x00007f37b3eb0e2d __poll (libc.so.6 + 0x106e2d)
                #1  0x00007f37b40c93a9 g_main_context_iterate.isra.0 (libglib-2.0.so.0 + 0xba3a9)
                #2  0x00007f37b4068a23 g_main_context_iteration (libglib-2.0.so.0 + 0x59a23)
                #3  0x00007f37b4068a79 glib_worker_main (libglib-2.0.so.0 + 0x59a79)
                #4  0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #5  0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #6  0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                
                Stack trace of thread 1454:
                #0  0x00007f37b3eb0e2d __poll (libc.so.6 + 0x106e2d)
                #1  0x00007f37b40c93a9 g_main_context_iterate.isra.0 (libglib-2.0.so.0 + 0xba3a9)
                #2  0x00007f37b406a99f g_main_loop_run (libglib-2.0.so.0 + 0x5b99f)
                #3  0x00007f37b42d4472 gdbus_shared_thread_func.lto_priv.0 (libgio-2.0.so.0 + 0x11a472)
                #4  0x00007f37b4099893 g_thread_proxy (libglib-2.0.so.0 + 0x8a893)
                #5  0x00007f37b3e37377 start_thread (libc.so.6 + 0x8d377)
                #6  0x00007f37b3ebe49c __clone3 (libc.so.6 + 0x11449c)
                ELF object binary architecture: AMD x86-64

Comment 12 Tomáš Bžatek 2023-05-15 12:29:43 UTC
Thanks for the backtrace! I've tried to reproduce the problem on my machine but everything seems to work fine.

From the backtrace I've noticed concurrent access to libmount from two different threads - one doing the actual mount, the second one parsing fstab. This should not cause troubles from a first sight.

Comment 13 Tomáš Bžatek 2023-05-15 13:06:43 UTC
Hmm, couple more tries, still unable to reproduce on my side.

I don't think this will make any difference, but could you attach `udisksctl dump` output please?
I was also wondering if there are any corresponding /etc/fstab entries for the particular block device.

Comment 14 publiccontact2020 2023-05-15 17:02:30 UTC
fstab contains one line with fedora UUID (redacted) in the following form:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /                       ext2    defaults        1 1

No entries for ntfs devices.

`udisksctl dump` is simply producing a lot of information regarding other partitions that are not ntfs.

I have reverted to libmount-2.38.1-4.fc38.x86_64 and the corresponding util-linux and util-linux-core packages and expeience no problem with nounting ntfs volumes, neither manually nor via GUI file manager.

In order to run a test per requests I upgrade to libmount-2.39-0.5.fc39.x86_64 and util-linux-2.39-0.5.fc39.x86_64 and util-linux-core-2.39-0.5.fc39.x86_64.

Immediately the problem returns.  No GUI mount but cli functional.

What changed within libmount/util-linux/util-linux-core between versions 2.38.1-4.fc38.x86_64 and 2.39-0.5.fc39.x86_64?

Comment 15 Karel Zak 2023-05-15 19:10:55 UTC
(In reply to publiccontact2020 from comment #14)
> What changed within libmount/util-linux/util-linux-core between versions
> 2.38.1-4.fc38.x86_64 and 2.39-0.5.fc39.x86_64?

Everything ;-) 

The new version (not yet released by upstream) is based on a new kernel mount API and the library contains a lot of changes.

Maybe you can try to add Environment="LIBMOUNT_DEBUG=all" to udisks2.service, reload systemd, restart udisks2 service, try the mount, and see output from "journalctl -u udisks2.service" to get libmount debug messages.

Comment 16 Tomáš Bžatek 2023-05-17 16:28:41 UTC
Some more hints:

- The rawhide 6.4.0-rc1 kernel turned out having some issues, namely with ext4, please check if downgrade to a stable Fedora 38 kernel helps with your issue. After all, you're running rawhide, these kind of problems are expected.
- If you have chance to test the nightly udisks builds with the new util-linux, any feedback would be appreciated: https://copr.fedorainfracloud.org/coprs/g/storage/udisks-daily/
- We're in process of allowing LIBMOUNT_DEBUG env. var. within the udisksd service, the change might land in the above repository in a couple of days. This will further help with debugging.

Comment 17 publiccontact2020 2023-05-18 00:56:24 UTC
Thinking this problem began when still using 6.3.x.

Now using custom 6.4.0-rc1 kernel and running fine with other distros on same hardware.

No issues with ext4 volumes nor ntfs volumes on other distros, only ntfs/rawhide.

Comment 18 publiccontact2020 2023-05-19 17:03:15 UTC
The failure o mount ntfs volume via file manager GUI persists with libmount-2.39-2.fc39.x86_64.

Comment 19 publiccontact2020 2023-05-22 14:28:04 UTC
Known mount issues with util-linux/libmount 2.39 elsewhere:

https://github.com/util-linux/util-linux/issues/2238

https://bugs.gentoo.org/906859

https://bugs.gentoo.org/906797

Comment 20 Tomáš Bžatek 2023-05-22 15:39:37 UTC
(In reply to publiccontact2020 from comment #19)
> Known mount issues with util-linux/libmount 2.39 elsewhere:
> 
> https://github.com/util-linux/util-linux/issues/2238
> 
> https://bugs.gentoo.org/906859
> 
> https://bugs.gentoo.org/906797

Yeah, I've noticed them when the new util-linux got masked and forced me to downgrade on world update after portage sync.

Though I plan to have a closer look at the mount options overrides (udisks appends some safe options like nodev,noexec for all mounts) it doesn't seem it affects udisks at this point. We've done extensive testing of util-linux-2.39 last week and these were the only fixes I've come up with: https://github.com/storaged-project/udisks/pull/1099

Anyway, the LIBMOUNT_DEBUG env. var changes mentioned above should be in the copr builds by now, could you please try to update the packages, make the modification of udisks2.service according to comment 15 and re-test? You should be seeing a lot of debuggin messages from udisksd in journal.

Comment 21 Karel Zak 2023-05-23 09:19:35 UTC
The problem with "user,exec" should be fixed in util-linux-2.39-3.fc39. I have backported the patch.

Comment 22 publiccontact2020 2023-05-24 16:36:27 UTC
Failure to GUI mount ntfs continues.
Cli ntfs mount functional.

Upgraded 052423:

rpm -qa | grep libmount
libmount-2.39-3.fc39.x86_64
libmount-devel-2.39-3.fc39.x86_64
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
additional installed packages:
ntfs-3g-libs-2022.10.3-2.fc38.x86_64
ntfs-3g-2022.10.3-2.fc38.x86_64
ntfs-3g-system-compression-1.0-13.fc39.x86_64

util-linux-core-2.39-3.fc39.x86_64
util-linux-2.39-3.fc39.x86_64
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
add Environment="LIBMOUNT_DEBUG=all" to udisks2.service:

"journalctl -u udisks2.service"

May 24 12:42:03 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 24 12:42:04 localhost.localdomain udisksd[1320]: udisks daemon version 2.9.4 starting
May 24 12:42:11 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 24 12:42:11 localhost.localdomain udisksd[1320]: Acquired the name org.freedesktop.UDisks2 on the system messag>
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Version 2022.10.3 integrated FUSE 28
May 24 12:42:21 localhost.localdomain udisksd[1320]: udisksd: libmount/src/hook_mount.c:480: hook_attach_target: As>
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Mounted /dev/sda2(Read-Write, label "ntfs", NTFS 3.1)
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Cmdline options: rw,uhelper=udisks2,nodev,nosuid,uid=1000,gid=>
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Mount options: uhelper=udisks2,nodev,nosuid,allow_other,nonemp>
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Global ownership and permissions enforced, configuration type 7
May 24 12:42:21 localhost.localdomain ntfs-3g[1825]: Unmounting /dev/sda2(ntfs)
May 24 12:42:21 localhost.localdomain systemd[1]: udisks2.service: Main process exited, code=dumped, status=6/ABRT
May 24 12:42:21 localhost.localdomain systemd[1]: udisks2.service: Failed with result 'core-dump'.
May 24 12:42:23 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 24 12:42:23 localhost.localdomain udisksd[1864]: udisks daemon version 2.9.4 starting
May 24 12:42:24 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 24 12:42:24 localhost.localdomain udisksd[1864]: Acquired the name org.freedesktop.UDisks2 on the system messag>
May 24 12:44:05 localhost.localdomain systemd[1]: Stopping udisks2.service - Disk Manager...
May 24 12:44:05 localhost.localdomain udisksd[1864]: udisks daemon version 2.9.4 exiting
May 24 12:44:05 localhost.localdomain udisksd[1864]: **
May 24 12:44:05 localhost.localdomain udisksd[1864]: GLib-GIO:ERROR:../gio/gresource.c:1451:g_static_resource_fini:>
May 24 12:44:05 localhost.localdomain udisksd[1864]: Bail out! GLib-GIO:ERROR:../gio/gresource.c:1451:g_static_reso>
May 24 12:44:05 localhost.localdomain systemd[1]: udisks2.service: Main process exited, code=dumped, status=6/ABRT
May 24 12:44:05 localhost.localdomain systemd[1]: udisks2.service: Failed with result 'core-dump'.
May 24 12:44:05 localhost.localdomain systemd[1]: Stopped udisks2.service - Disk Manager.
May 24 14:09:51 localhost.localdomain systemd[1]: /usr/lib/systemd/system/udisks2.service:4: Unknown key name 'Envi>
May 24 14:09:51 localhost.localdomain systemd[1]: /usr/lib/systemd/system/udisks2.service:15: Unknown key name 'Env>
May 24 14:09:51 localhost.localdomain systemd[1]: /usr/lib/systemd/system/udisks2.service:4: Unknown key name 'Envi>
May 24 14:09:51 localhost.localdomain systemd[1]: /usr/lib/systemd/system/udisks2.service:15: Unknown key name 'Env>
May 24 14:09:51 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 24 14:09:52 localhost.localdomain udisksd[1328]: udisks daemon version 2.9.4 starting
May 24 14:09:58 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 24 14:13:12 localhost.localdomain udisksd[1328]: udisksd: libmount/src/hook_mount.c:480: hook_attach_target: As>
May 24 14:13:12 localhost.localdomain ntfs-3g[20589]: Version 2022.10.3 integrated FUSE 28
May 24 14:13:12 localhost.localdomain ntfs-3g[20589]: Mounted /dev/sda2(Read-Write, label "ntfs", NTFS 3.1)
May 24 14:13:12 localhost.localdomain ntfs-3g[20589]: Cmdline options: rw,uhelper=udisks2,nodev,nosuid,uid=1000,gid>
May 24 14:13:12 localhost.localdomain ntfs-3g[20589]: Mount options: uhelper=udisks2,nodev,nosuid,allow_other,nonem>
May 24 14:13:12 localhost.localdomain ntfs-3g[20589]: Global ownership and permissions enforced, configuration type>
May 24 14:13:13 localhost.localdomain systemd[1]: udisks2.service: Main process exited, code=dumped, status=6/ABRT
May 24 14:13:13 localhost.localdomain ntfs-3g[20589]: Unmounting /dev/sda2(ntfs)
May 24 14:13:13 localhost.localdomain systemd[1]: udisks2.service: Failed with result 'core-dump'.
May 24 14:13:13 localhost.localdomain systemd[1]: udisks2.service: Consumed 2.401s CPU time.
May 24 14:13:15 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 24 14:13:15 localhost.localdomain udisksd[20625]: udisks daemon version 2.9.4 starting
May 24 14:13:16 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 24 14:13:16 localhost.localdomain udisksd[20625]: Acquired the name org.freedesktop.UDisks2 on the system messa>
May 24 14:13:23 localhost.localdomain udisksd[20625]: udisksd: libmount/src/hook_mount.c:480: hook_attach_target: A>
May 24 14:13:23 localhost.localdomain ntfs-3g[20717]: Version 2022.10.3 integrated FUSE 28
May 24 14:13:23 localhost.localdomain ntfs-3g[20717]: Mounted /dev/sda2(Read-Write, label "ntfs", NTFS 3.1)
May 24 14:13:23 localhost.localdomain ntfs-3g[20717]: Cmdline options: rw,uhelper=udisks2,nodev,nosuid,uid=1000,gid>
May 24 14:13:23 localhost.localdomain ntfs-3g[20717]: Mount options: uhelper=udisks2,nodev,nosuid,allow_other,nonem>
May 24 14:13:23 localhost.localdomain ntfs-3g[20717]: Global ownership and permissions enforced, configuration type>
May 24 14:13:24 localhost.localdomain systemd[1]: udisks2.service: Main process exited, code=dumped, status=6/ABRT
May 24 14:13:24 localhost.localdomain ntfs-3g[20717]: Unmounting /dev/sda2(ntfs)
May 24 14:13:24 localhost.localdomain systemd[1]: udisks2.service: Failed with result 'core-dump'.
May 24 14:13:24 localhost.localdomain systemd[1]: udisks2.service: Consumed 1.210s CPU time.
May 24 14:13:25 localhost.localdomain systemd[1]: Starting udisks2.service - Disk Manager...
May 24 14:13:25 localhost.localdomain udisksd[20728]: udisks daemon version 2.9.4 starting
May 24 14:13:26 localhost.localdomain systemd[1]: Started udisks2.service - Disk Manager.
May 24 14:13:26 localhost.localdomain udisksd[20728]: Acquired the name org.freedesktop.UDisks2 on the system messa>

Comment 23 Tomáš Bžatek 2023-05-25 10:59:22 UTC
https://github.com/util-linux/util-linux/issues/2267

Switching back to Karel ;-)

Comment 24 Tomáš Bžatek 2023-05-25 12:31:38 UTC
Fixed by https://bodhi.fedoraproject.org/updates/FEDORA-2023-2c92dda975, please test.

Comment 25 publiccontact2020 2023-05-25 15:00:49 UTC
Waiting to test when 2.39.4 deps land in repo.

wget https://kojipkgs.fedoraproject.org//packages/util-linux/2.39/4.fc39/x86_64/libmount-2.39-4.fc39.x86_64.rpm
--2023-05-25 12:49:06-- Saving to: ‘libmount-2.39-4.fc39.x86_64.rpm’

wget https://kojipkgs.fedoraproject.org//packages/util-linux/2.39/4.fc39/x86_64/libmount-devel-2.39-4.fc39.x86_64.rpm
--2023-05-25 12:49:31-- Saving to: ‘libmount-devel-2.39-4.fc39.x86_64.rpm’


sudo rpm -Uihv libmount-2.39-4.fc39.x86_64.rpm libmount-devel-2.39-4.fc39.x86_64.rpm 
error: Failed dependencies:
	libblkid(x86-64) = 2.39-4.fc39 is needed by libmount-2.39-4.fc39.x86_64
	libuuid(x86-64) = 2.39-4.fc39 is needed by libmount-2.39-4.fc39.x86_64
	libmount = 2.39-3.fc39 is needed by (installed) util-linux-core-2.39-3.fc39.x86_64
	libmount = 2.39-3.fc39 is needed by (installed) util-linux-2.39-3.fc39.x86_64

Comment 26 publiccontact2020 2023-05-31 13:54:52 UTC
Norman functionality appears to be restored for GUI mount of ntfs volumes with libmount-2.39-4.fc39.x86_64.rpm.

Thanks to devs in resolving this issue.


Note You need to log in before you can comment on or make changes to this bug.