IMHO this is completely backwards, see
https://github.com/zfsonlinux/zfs/pull/7259 for an upstream discussion
similar to this.
systemd service units are not the proper place to load modules - there
is {/lib,/etc}/modules-load.d/ which gets parsed by systemd-load-
modules.service early in the boot process, and ZoL even ships a
(disabled by default) snippet for /lib that supports. just flip that one
to enabled (admin can override via /etc) and you don't need to introduce
bogus services.
--
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/1741081
Title:
zfs-import-cache.service fails on startup
Status in zfs-linux package in Ubuntu:
Fix Released
Status in zfs-linux source package in Artful:
In Progress
Status in zfs-linux source package in Bionic:
Fix Released
Bug description:
== SRU Request, Artful ==
Enable ZFS module to be loaded without the broken ubuntu-load-zfs-
unconditionally.patch.
== Fix ==
Add a new zfs-load-module.service script that modprobes the ZFS module
and remove any hard coded module loading from zfs-import-cache.service
& zfs-import-scan.service and make these latter scripts require the
new zfs-load-module.service script. Also remove the now defunct
ubuntu-load-zfs-unconditionally.patch as this will no longer be
required.
== Testcase ==
On a clean VM, install with the fixed package, zfs should load
automatically.
== Regression potential ==
ZFS module may not load if the changes are broken. However, testing
proves this not to be the case.
--------------------
I just noticed on my test VM of artful that zfs-import-cache.service
does not have a ConditionPathExists=/etc/zfs/zpool.cache. Because of
that, it fails on startup, since the cache file does not exist.
This line is being deleted by
debian/patches/ubuntu-load-zfs-unconditionally.patch. This patch seems to exist
per:
https://bugs.launchpad.net/ubuntu/+source/lxd/+bug/1672749
This patch still exists in bionic, so I assume it will be similarly
broken.
If the goal of the patch is to load the module (and only that), I
think it should create a third unit instead:
zfs-load-module.service
^^ runs modprobe zfs
zfs-import-cache.service & zfs-import-scan.service
^^ per upstream minus modprobe plus Requires=zfs-load-module.service
I have tested this manually and it works. I can submit a package patch
if this is the desired solution.
Interestingly, before this change, zfs-import-scan.service wasn't
starting. If started manually, it worked. I had to give it a
`systemctl enable zfs-import-scan.service` to create the Wants
symlinks. Looking at the zfsutils-linux.postinst, I see the correct
boilerplate from dh_systemd, so I'm not sure why this wasn't already
done. Can anyone confirm or deny whether zfs-import-scan.service is
enabled out-of-the-box on their system?
Is the zfs-import-scan.service not starting actually the cause of the
original bug? The design is that *either* zfs-import-cache.service or
zfs-import-scan.service starts. They both call modprobe zfs.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1741081/+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