[LU-12902] Lustre 2.12.3 patchless is broken with newest el7.7 kernel Created: 24/Oct/19  Updated: 24/Feb/21  Resolved: 24/Feb/21

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.12.3
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Nathaniel Clark Assignee: WC Triage
Resolution: Won't Fix Votes: 0
Labels: None

Issue Links:
Related
is related to LU-12891 kernel update [RHEL7.7 3.10.0-1062.4.... Resolved
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

3.10.0-1062.4.1.el7 has incompatibilities that ldiskfs and osd-ldiskfs relay on.

# rpm -q kmod-lustre-osd-ldiskfs
kmod-lustre-osd-ldiskfs-2.12.3-1.el7.x86_64
# rpm -ql kmod-lustre-osd-ldiskfs|weak-modules --add-modules --no-initramfs --verbose
weak module for ldiskfs.ko already exists for kernel 3.10.0-1062.1.2.el7.x86_64, update case?
weak module for osd_ldiskfs.ko already exists for kernel 3.10.0-1062.1.2.el7.x86_64, update case?
Module ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is compatible with kernel 3.10.0-1062.1.2.el7.x86_64
Module osd_ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is compatible with kernel 3.10.0-1062.1.2.el7.x86_64
Module ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is not compatible with kernel 3.10.0-1062.4.1.el7.x86_64 in symbols:  dax_iomap_rw dax_iomap_fault iomap_seek_hole iomap_zero_range iomap_seek_data
Module osd_ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is not compatible with kernel 3.10.0-1062.4.1.el7.x86_64 in symbols:  ...
Falling back weak-modules state for kernel 3.10.0-1062.4.1.el7.x86_64

ldiskfs is requried for osd-zfs and it fails with with several altered iomap functions:

# rpm -q --provides kernel-3.10.0-1062.1.2.el7.x86_64|grep iomap
kernel(dax_iomap_fault) = 0x0b902321
kernel(dax_iomap_rw) = 0x37eef37b
kernel(iomap_fiemap) = 0xfa2ed623
kernel(iomap_file_buffered_write) = 0x628c917c
kernel(iomap_file_dirty) = 0x9e200d1b
kernel(iomap_page_mkwrite) = 0xbbe2a625
kernel(iomap_seek_data) = 0xb5ddb7af
kernel(iomap_seek_hole) = 0xa20591eb
kernel(iomap_truncate_page) = 0xf593898a
kernel(iomap_zero_range) = 0x1af83d54 

Notice the differences with the newer kernel:

# rpm -q --provides kernel-3.10.0-1062.4.1.el7.x86_64|grep iomap
kernel(dax_iomap_fault) = 0x11edac64
kernel(dax_iomap_rw) = 0xda44c989
kernel(iomap_fiemap) = 0x76136597
kernel(iomap_file_buffered_write) = 0xbd2b25bb
kernel(iomap_file_dirty) = 0xfaab4451
kernel(iomap_page_mkwrite) = 0xf7ffaaec
kernel(iomap_seek_data) = 0xb9e7cdbe
kernel(iomap_seek_hole) = 0x3e7c77ea
kernel(iomap_truncate_page) = 0x0f79ea91
kernel(iomap_zero_range) = 0x52e02a8e 

 

I believe this is due to iomap changes in 3.10.0-1062.3.1 (from rpm -q --changelog):

* Mon Sep 16 2019 Bruno Meneguele <bmeneg@redhat.com> [3.10.0-1062.3.1.el7]
...
- [fs] iomap: fix page_done callback for short writes (Andreas Grunbacher) [1737373 1724362]
- [fs] fs: fold __generic_write_end back into generic_write_end (Andreas Grunbacher) [1737373 1724362]
- [fs] iomap: don't mark the inode dirty in iomap_write_end (Andreas Grunbacher) [1737373 1724362]
- [fs] gfs2: Fix iomap write page reclaim deadlock (Andreas Grunbacher) [1737373 1724362]
- [fs] iomap: Add a page_prepare callback (Andreas Grunbacher) [1737373 1724362]
- [fs] iomap: Fix use-after-free error in page_done callback (Andreas Grunbacher) [1737373 1724362]
- [fs] fs: Turn __generic_write_end into a void function (Andreas Grunbacher) [1737373 1724362]
- [fs] iomap: Clean up __generic_write_end calling (Andreas Grunbacher) [1737373 1724362] 


 Comments   
Comment by Olaf Faaland [ 28/Oct/19 ]

It looks to me like osd-zfs doesn't depend on iomap. Am I missing something?

[root@solfish1:~]# for x in /repo/yum/ch6-l212-chaotic/x86_64/os/kmod*osd*; do echo ${x} $(rpm -q --requires --package ${x} | grep iomap | wc -l); done
/repo/yum/ch6-l212-chaotic/x86_64/os/kmod-lustre-osd-ldiskfs-2.12.3_1.chaos-1.ch6.x86_64.rpm 5
/repo/yum/ch6-l212-chaotic/x86_64/os/kmod-lustre-osd-zfs-2.12.3_1.chaos-1.ch6.x86_64.rpm 0

I'll ask around and see if I can find out whether we need to expect more changes.

Comment by Nathaniel Clark [ 29/Oct/19 ]

ofaaland,

New kernel only breaks osd-ldiskfs/ldiskfs modules.  ZFS is unaffected. I fixed description

Comment by Olaf Faaland [ 25/Nov/19 ]

'll ask around and see if I can find out whether we need to expect more changes.

I did not learn anything of interest.  We just rebuilt against the newer kernel.

Comment by Andreas Dilger [ 24/Feb/21 ]

These kernels and Lustre releases are no longer of interest to anyone.

Generated at Sat Feb 10 02:56:38 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.