** Also affects: zfs
Importance: Undecided
Status: New
** Description changed:
- 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)
+ 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.
+
+ Upstream PR: https://github.com/zfsonlinux/zfs/pull/9360
--
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 Native ZFS for Linux:
New
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.
Upstream PR: https://github.com/zfsonlinux/zfs/pull/9360
To manage notifications about this bug go to:
https://bugs.launchpad.net/zfs/+bug/1845298/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp