Public bug reported:
# zpool create -o ashift=12 -O atime=off -O canmount=off -O normalization=formD -O mountpoint=/ -R /mnt rpool /dev/vda2 # zfs create rpool/ROOT -o canmount=off -o mountpoint=none # zfs create rpool/ROOT/ubuntu_123456 -o mountpoint=/ # zfs create rpool/ROOT/ubuntu_123456/var # zfs create rpool/ROOT/ubuntu_123456/var/lib -o canmount=off # zfs create rpool/var -o canmount=off # zfs create rpool/var/lib # zfs create rpool/var/games # zfs create rpool/ROOT/ubuntu_123456/var/lib/apt Zfs mount is what we expect (5 datasets mounted): # zfs mount rpool/ROOT/ubuntu_123456 /mnt rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/games /mnt/var/games rpool/var/lib /mnt/var/lib rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt # zfs umount -a Everything unmounted as expected: # find /mnt/ /mnt/ However, zfs mount -a doesn't mount everything in the correct order reliably: # zfs mount -a cannot mount '/mnt': directory is not empty -> In that case, rpool/ROOT/ubuntu_123456 wasn't mounted: # zfs mount rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/lib /mnt/var/lib rpool/var/games /mnt/var/games rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt # find /mnt/ /mnt/ /mnt/var /mnt/var/lib /mnt/var/lib/apt /mnt/var/games # zfs umount -a # find /mnt/ /mnt/ -> Everything was umounted, let's try to remount all again: # zfs mount -a cannot mount '/mnt/var/lib': failed to create mountpoint # zfs mount rpool/ROOT/ubuntu_123456 /mnt rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/games /mnt/var/games rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt -> This time, rpool/ROOT/ubuntu_123456 was mounted, but not rpool/var/lib (before rpool/ROOT/ubuntu_123456/var/lib/apt) Tested as well with zfs 0.7: tried to zfs mount -a && zfs umount -a in loop, no issue: all datasets are mounted in the correct order reliably. Note that it seems to be related to the version of zfs we created a pool with: - Try zfs mount -a on zfs 0.7 with a pool/datasets created under zfs 0.8: the ordering issues occur - Try zfs mount -a on zfs 0.8 with a pool/datasets created under zfs 0.7: no ordering issue. ** Affects: zfs-linux (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to zfs-linux in Ubuntu. https://bugs.launchpad.net/bugs/1837717 Title: [0.8 regression] zfs mount -a dataset mount ordering issues Status in zfs-linux package in Ubuntu: New Bug description: # zpool create -o ashift=12 -O atime=off -O canmount=off -O normalization=formD -O mountpoint=/ -R /mnt rpool /dev/vda2 # zfs create rpool/ROOT -o canmount=off -o mountpoint=none # zfs create rpool/ROOT/ubuntu_123456 -o mountpoint=/ # zfs create rpool/ROOT/ubuntu_123456/var # zfs create rpool/ROOT/ubuntu_123456/var/lib -o canmount=off # zfs create rpool/var -o canmount=off # zfs create rpool/var/lib # zfs create rpool/var/games # zfs create rpool/ROOT/ubuntu_123456/var/lib/apt Zfs mount is what we expect (5 datasets mounted): # zfs mount rpool/ROOT/ubuntu_123456 /mnt rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/games /mnt/var/games rpool/var/lib /mnt/var/lib rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt # zfs umount -a Everything unmounted as expected: # find /mnt/ /mnt/ However, zfs mount -a doesn't mount everything in the correct order reliably: # zfs mount -a cannot mount '/mnt': directory is not empty -> In that case, rpool/ROOT/ubuntu_123456 wasn't mounted: # zfs mount rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/lib /mnt/var/lib rpool/var/games /mnt/var/games rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt # find /mnt/ /mnt/ /mnt/var /mnt/var/lib /mnt/var/lib/apt /mnt/var/games # zfs umount -a # find /mnt/ /mnt/ -> Everything was umounted, let's try to remount all again: # zfs mount -a cannot mount '/mnt/var/lib': failed to create mountpoint # zfs mount rpool/ROOT/ubuntu_123456 /mnt rpool/ROOT/ubuntu_123456/var /mnt/var rpool/var/games /mnt/var/games rpool/ROOT/ubuntu_123456/var/lib/apt /mnt/var/lib/apt -> This time, rpool/ROOT/ubuntu_123456 was mounted, but not rpool/var/lib (before rpool/ROOT/ubuntu_123456/var/lib/apt) Tested as well with zfs 0.7: tried to zfs mount -a && zfs umount -a in loop, no issue: all datasets are mounted in the correct order reliably. Note that it seems to be related to the version of zfs we created a pool with: - Try zfs mount -a on zfs 0.7 with a pool/datasets created under zfs 0.8: the ordering issues occur - Try zfs mount -a on zfs 0.8 with a pool/datasets created under zfs 0.7: no ordering issue. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1837717/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp