Open MynaITLabs opened 1 year ago
FYI, more background info . . a clean CentOS Stream 9 (updated as of May 9th 2023) with kernel 5.14.0-305.el9.x86_64 . Compiling source code for release 2.1.4, 2.1.5, 2.1.6 doesn't work (fails on error). Compiling source code for release 2.1.8, 2.1.9, 2.1.10, 2.1.11 compiles and installs fine. (tested by bouncing between version numbers, compile-test, then picking a new zfs version, compile again.. no reboots between)
The CentOS/RHEL kernels are well known for backporting many upstream changes in to their base kernel version. Or in other words this is a heavily patched 5.14 kernel, one where it looks like they've pulled in a 5.19 patch that modifies the blk_queue_discard
interface ZFS was using. The ZFS compatibility code for this, commit 7ae5ea8864d7a0cbf63feb61bd9022adc803b60d, was added to the zfs-2.1.5 release. It's likely the zfs-2.1.5 and zfs-2.1.6 build failures you're seeing are caused by backports from even newer kernels.
There's nothing we can really do about what RedHat chooses to backport. You'll just need to make sure you're using a new enough OpenZFS version which includes the needed patches to detect those modified kernel interfaces.
Hmm.. how about this for a compromise? Update the version compatibility docs to reflect the discovery that some ZFS versions are not compatible with Kernel version 5.14.0?
System information
Describe the problem you're observing
2.1.4 2022 03 23 3.10 - 5.17 kernels no work K 5.14.0 ?
2.1.5 2022 06 22 3.10 - 5.18 kernels no work K 5.14.0 ?
2.1.6 2022 10 03 3.10 - 5.19 kernels no work K 5.14.0 ?
2.1.8 2023 01 20 3.10 - 6.1 kernels works K 5.14.0
2.1.9 2023 01 25 3.10 - 6.1 kernels works K 5.14.0
2.1.10 2023 04 ?? 3.10 - 6.2 kernels works K 5.14.0
2.1.11 2023 04 ?? 3.10 - 6.2 kernels works K 5.14.0
Describe how to reproduce the problem
Download source, set release compile.
$ sudo -s
$ cd /usr/local/sbin
$ git clone https://github.com/openzfs/zfs
$ cd zfs
$ ZFS_VER="zfs-2.1.4"
$ git pull origin master
$ git checkout ${ZFS_VER}
$ ./autogen.sh && ./configure && make -j && sudo make install
Include any warning/errors/backtraces from the system logs