Eugene Grosbein
2018-Oct-19 09:24 UTC
krpc: unbootable ZFS-on-root after major upgrade to 11.2
On 19.10.2018 13:28, Andriy Gapon wrote:>> It was brought to my attention that 10.x did not require availability >> of krpc for ZFS-on-root system to be bootable but 11.x does. >> >> That is, major upgrade of 10.x ZFS-on-root system to 11.x >> results in non-bootable broken system if it uses custom kernel without NFS bits >> that automatically come with krpc, and the system was built with MODULES_OVERRIDE="zfs opensolaris" >> and no krpc mentioned. > > Could you please also describe specifics of the problem? > It's kidn of strange that root-on-zfs requires krpc.https://svnweb.freebsd.org/base/stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c?revision=339111&view=markup#l7146 This code uses some xdr(3) functions to parse zpool.cache and kernel-side implementation of xdr(3) is contained in krpc.ko Out of curiosity, I've commented out mentioned MODULE_DEPEND(zfsctrl, krpc, 1, 1, 1), rebuilt zfs.ko and tried to kldload it using UFS-only system having no NFS code in the kernel and it failed with a note in dmesg: link_elf: symbol xdrmem_create undefined
Andriy Gapon
2018-Oct-19 14:34 UTC
krpc: unbootable ZFS-on-root after major upgrade to 11.2
On 19/10/2018 12:24, Eugene Grosbein wrote:> On 19.10.2018 13:28, Andriy Gapon wrote: > >>> It was brought to my attention that 10.x did not require availability >>> of krpc for ZFS-on-root system to be bootable but 11.x does. >>> >>> That is, major upgrade of 10.x ZFS-on-root system to 11.x >>> results in non-bootable broken system if it uses custom kernel without NFS bits >>> that automatically come with krpc, and the system was built with MODULES_OVERRIDE="zfs opensolaris" >>> and no krpc mentioned. >> >> Could you please also describe specifics of the problem? >> It's kidn of strange that root-on-zfs requires krpc. > > https://svnweb.freebsd.org/base/stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c?revision=339111&view=markup#l7146 > > This code uses some xdr(3) functions to parse zpool.cache > and kernel-side implementation of xdr(3) is contained in krpc.ko > > Out of curiosity, I've commented out mentioned MODULE_DEPEND(zfsctrl, krpc, 1, 1, 1), > rebuilt zfs.ko and tried to kldload it using UFS-only system having no NFS code in the kernel > and it failed with a note in dmesg: > > link_elf: symbol xdrmem_create undefinedIt's strange that this is a 10.x vs 11.x issue. I see that zfs has the krpc dependency since r193128. And the call to xdrmem_create is there since r168404. -- Andriy Gapon