zfs-load-module.service seems to have a Requires on itself? That has to
be wrong.

Also, zfs-import-cache.service and zfs-import-scan.service need an After
=zfs-load-module.service. They're not getting one automatically because
of DefaultDependencies=no (which seems appropriate here, so leave that
alone). Scott, can you try this? I think it will fix your issue, since
zfs-mount.service already has After=zfs-load-cache.service and After
=zfs-load-scan.service.

The proposed package, with the changes above should fix the issue I'm
reporting.

However, LP #1672749 says, "Since zfsutils-linux/0.6.5.9-4, zfs module
is not automatically loaded on systems that no zpool exists, this avoids
tainting everyone's kernel who has the package installed but is not
using zfs." Is this still an important goal? If so, wasn't that lost
with ubuntu-load-zfs-unconditionally.patch? Or perhaps something is
keeping zfs-import-scan.service from being enabled by default?

-- 
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     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to