After running # yum update zfs
and restarting my CentOS 6
ZFS on Linux
system can no longer see or interact with it's zpools.
# zpool status
no pools available
# zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
Aborted
# dmesg | grep -i spl
SPL: Loaded module v0.6.2-1
SPL: using hostid 0x43a4c8a0
This is a canary system, so I'm not worried about its contents, but I have other machines that I would eventually like to upgrade safely. What did I do wrong, and more importantly how can I do it right for the important systems?
This came up in discussion on the ZFS mailing list.
This is covered in the ZFS bug report: https://github.com/zfsonlinux/zfs/issues/2400#issuecomment-46118193
I only use ZFS for data partitions, so I uninstalled the packages, got rid of the weak-modules references and reinstalled ZFS.
Edit: I still had to reboot.
Edit:
Following both workarounds presented resulted in some problems with the ZFS installation. There are some issues with module loading due to a critical missing parameter (
zfs: Unknown parameter
zfs_vdev_max_pending'`). I'd deem this release unsafe for general release or blind updates on existing systems.That looks like...a bug. In fact, it is a bug. The ZFS userland is updated, but the kernel modules aren't being updated by DKMS. This assertion is caused by the version mismatch.
You can work around it by a process given in a comment to the bug, by removing the old kernel modules and then reinstalling everything.
If you ever end up on this page and your running
Debian
, you only have to do the following to fix the issue:The issue occurred because a simple
update
doesn't not replace old library files with the newer ones. This is why adist-upgrade
is needed. From the apt-get manpage:Source: http://bernaerts.dyndns.org/linux/75-debian/312-debian-wheezy-zfsonlinux-zpool-lost