[Pkg-zfsonlinux-devel] Bug#1041857: Warnings about systemd-udev-settle.service is deprecated on debian 12 ZFS, plus zfs-import-scan.service missing After=zfs-load-module.service

Laurent GUERBY laurent at guerby.net
Mon Jul 24 14:57:18 BST 2023


Package: zfsutils-linux
Version: 2.1.11-1
Severity: important

Hi,

On a brand new debian 12 VM with ZFS while looking at boot logs I
found:

Jul 21 22:21:24 testhost udevadm[355]: systemd-udev-settle.service is
deprecated. Please fix zfs-import-cache.service, zfs-load-
module.service not to pull it in.

Looking at the ZFS service files:

/lib/systemd/system# grep systemd-udev-settle zfs*|grep Requires=
zfs-import-cache.service:Requires=systemd-udev-settle.service
zfs-import-scan.service:Requires=systemd-udev-settle.service
zfs-load-module.service:Requires=systemd-udev-settle.service

I removed above the Requires= lines: my ZFS still worked after reboot
and no warnings about deprecated. I left the After= lines they seem
harmless and could be useful is one is still relying on systemd-udev-
settle in some way.

I then tested a switch from zfs-import-cache (which the documentation
in /etc/default/zfs says is not recommanded on Linux) to zfs-import-
scan:

systemctl disable  zfs-import-cache
systemctl enable zfs-import-cache
systemctl daemon-reload
reboot

There was an error at boot about /sys/module/zfs not being there,
looking at dependancies I noticed:

/lib/systemd/system# grep zfs-load zfs*
zfs-import-cache.service:Requires=zfs-load-module.service
zfs-import-cache.service:After=zfs-load-module.service
zfs-import-scan.service:Requires=zfs-load-module.service
zfs-import-scan.service:Requires=zfs-load-module.service

zfs-import-scan is missing an After=zfs-load-module.service and has two
times Requires=zfs-load-module.service so probably a copy/paste thinko.

I changed the second Requires= to After=

Next error was due to:

ConditionFileNotEmpty=!/etc/zfs/zpool.cache

I removed this "ConditionFileNotEmpty=!" line entirely since the
zpool.cache file is ignored by zfs-import-scan (that's the whole
purpose of this unit) and I couldn't find documentation about "=!" in
systemd unit files.

With both edits I was able to successfully reboot and have all my ZFS
pools ready using zfs-import-scan.

Note: in my setup (VM running debian 12 with multiple disks and ZFS
pools) zfs-import-cache sometimes fails to import all the pools at boot
while zfs-import-scan always succeed.

Thanks in advance for your help,

Sincerely,

Laurent GUERBY



More information about the Pkg-zfsonlinux-devel mailing list