Public bug reported:

 If /var/lib is a dataset not under <pool>/ROOT/<root_dataset>, as proposed
 in the ubuntu root on zfs upstream guide
 (https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS), we end up
 with a race where some services, like systemd-random-seed are writing under
 /var/lib, while zfs-mount is called. zfs mount will then potentially fail
 because of /var/lib isn't empty, and so, can't be mounted.
 Order those 2 units for now (more may be needed) as we can't declare
 virtually a provide mount point to match
 "RequiresMountsFor=/var/lib/systemd/random-seed" from
 systemd-random-seed.service.
 The optional generator for zfs 0.8 fixes it, but it's not enabled by default
 nor necessarily required.
 Example:
 - rpool/ROOT/ubuntu (mountpoint = /)
 - rpool/var/ (mountpoint = /var)
 - rpool/var/lib  (mountpoint = /var/lib)

Both zfs-mount.service and systemd-random-seed.service are starting
After=systemd-remount-fs.service. zfs-mount.service should be done
before local-fs.target while systemd-random-seed.service should finish
before sysinit.target (which is a later target).

Ideally, we would have a way for zfs mount -a unit to declare all paths
or move systemd-random-seed after local-fs.target.

** 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/1845298

Title:
  Potential race with systemd if /var/lib is an independent persistent
  unit

Status in zfs-linux package in Ubuntu:
  New

Bug description:
   If /var/lib is a dataset not under <pool>/ROOT/<root_dataset>, as proposed
   in the ubuntu root on zfs upstream guide
   (https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS), we end up
   with a race where some services, like systemd-random-seed are writing under
   /var/lib, while zfs-mount is called. zfs mount will then potentially fail
   because of /var/lib isn't empty, and so, can't be mounted.
   Order those 2 units for now (more may be needed) as we can't declare
   virtually a provide mount point to match
   "RequiresMountsFor=/var/lib/systemd/random-seed" from
   systemd-random-seed.service.
   The optional generator for zfs 0.8 fixes it, but it's not enabled by default
   nor necessarily required.
   Example:
   - rpool/ROOT/ubuntu (mountpoint = /)
   - rpool/var/ (mountpoint = /var)
   - rpool/var/lib  (mountpoint = /var/lib)

  Both zfs-mount.service and systemd-random-seed.service are starting
  After=systemd-remount-fs.service. zfs-mount.service should be done
  before local-fs.target while systemd-random-seed.service should finish
  before sysinit.target (which is a later target).

  Ideally, we would have a way for zfs mount -a unit to declare all
  paths or move systemd-random-seed after local-fs.target.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1845298/+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

Reply via email to