I have a ZFS dataset that exists in /proc/mounts and in /etc/mtab, but the folder doesn't exist in the filesystem, zfs umount reports the dataset doesn't exist, and zfs mount reports that the dataset is already mounted.
This is on RHEL 8.8 (fully updated) running zfs dkms 2.1.11-1
Is it possible to umount this dataset without rebooting the server? How would I even begin to troubleshoot this sort of problem?
I believe this occurred when it had the sharenfs setting enabled on the dataset and then a zfs umount was attempted while the nfs daemon was sharing. I have tried setting sharenfs=off (which succeeds, but doesn't fix the problem). The nfs services have been shut down and the problem still occurs. I can zfs send the datasets to another system and verify they're intact, but I just need them mounted on this server.
I am not using containers or additional mount namespaces (that I'm aware of).
The mounts are listed in /etc/mtab and /proc/mounts
topher@nzxt:/$ grep Backups -H /etc/mtab /proc/mounts /etc/mtab:array/Backups /array/Backups zfs rw,seclabel,nosuid,nodev,noexec,noatime,xattr,noacl 0 0 /etc/mtab:array/Backups/gwen /array/Backups/gwen zfs rw,seclabel,nosuid,nodev,noexec,noatime,xattr,noacl 0 0 /proc/mounts:array/Backups /array/Backups zfs rw,seclabel,nosuid,nodev,noexec,noatime,xattr,noacl 0 0 /proc/mounts:array/Backups/gwen /array/Backups/gwen zfs rw,seclabel,nosuid,nodev,noexec,noatime,xattr,noacl 0 0 The directory doesn't exist in the filesystem
topher@nzxt:/$ ls /array/Backups ls: cannot access '/array/Backups': No such file or directory The dataset do exist in zfs (pool is array)
topher@nzxt:/$ zfs list array/Backups array/Backups/gwen NAME USED AVAIL REFER MOUNTPOINT array/Backups 2.62T 1.59T 1.71T /array/Backups array/Backups/gwen 364G 1.59T 364G /array/Backups/gwen Umounting (lazy, forced, or otherwise) fails.
topher@nzxt:/$ sudo zfs umount array/Backups cannot unmount '/array/Backups/gwen': no such pool or dataset topher@nzxt:/$ sudo zfs umount array/Backups/gwen cannot unmount '/array/Backups/gwen': no such pool or dataset topher@nzxt:/$ sudo umount /array/Backups/gwen umount: /array/Backups/gwen: no mount point specified. topher@nzxt:/$ sudo umount /array/Backups umount: /array/Backups: no mount point specified. I'm unable to export the zfs pool either.
topher@nzxt:~$ sudo zpool export array cannot unmount '/array/Backups/gwen': unmount failed Attempts to remount the directory report that it's already mounted
topher@nzxt:/$ sudo zfs mount array/Backups cannot mount 'array/Backups': filesystem already mounted topher@nzxt:/$ sudo zfs mount array/Backups/gwen cannot mount 'array/Backups/gwen': filesystem already mounted lsof throws errors attempting to walk the affected directory and does not return any open filehandles in those paths
topher@nzxt:/$ sudo lsof | grep Backups lsof: WARNING: can't stat() zfs file system /array/Backups Output information may be incomplete. lsof: WARNING: can't stat() zfs file system /array/Backups/gwen Output information may be incomplete. fuser doesn't think the mount exists
topher@nzxt:~$ sudo fuser -vm /array/Backups Specified filename /array/Backups does not exist. topher@nzxt:~$ sudo fuser -vm /array/Backups/gwen Specified filename /array/Backups/gwen does not exist.