[LU-16058] Generation and using of the config.cache in b2_15 Created: 29/Jul/22  Updated: 10/Sep/22  Resolved: 01/Sep/22

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.16.0, Lustre 2.15.2

Type: Bug Priority: Minor
Reporter: Dominika Wanat Assignee: Shaun Tancheff
Resolution: Fixed Votes: 0
Labels: None
Environment:

Rocky Linux 9, kernel 5.14.0-70.17.1.el9_0.x86_64, sysofed, Lustre 2.15.1_RC1 (based on b2_15)


Severity: 1
Rank (Obsolete): 9223372036854775807

 Description   

We are maintaining a small CI/CD infrastructure based on GitlabCI to build different Lustre client packages for worker nodes. In the pipeline we are usually configuring Lustre build using checks caching via -C parameter: 

 ./configure --disable-tests --disable-server --enable-client --with-zfs=no --with-o2ib=yes --disable-gss --with-linux=/usr/src/kernels/${CLIENT_KERNEL_VER}.x86_64 -C

and using `config.cache` as build cache.  This solution speeds up the build process.  However, the latest branch based on the b2_15  causes the following errors when invoking `make rpms`:

 

config.status: creating lustre/utils/gss/Makefile
config.status: creating lustre/osp/Makefile
config.status: creating lustre/osp/autoMakefile
config.status: creating lustre/lod/Makefile
config.status: creating lustre/lod/autoMakefile
config.status: creating snmp/Makefile
config.status: creating snmp/autoconf/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
CC:            gcc
LD:            /usr/bin/ld -m elf_x86_64
CPPFLAGS:      -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/undef.h -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/config.h -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/utils/ -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include 
CFLAGS:        -g -O2 -Werror -Wall -Werror
EXTRA_KCFLAGS: -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/undef.h -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/config.h  -g -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include -Wno-format-truncation -Wno-stringop-truncation -Wno-stringop-overflow
Type 'make' to build Lustre.
+ make -j2 -s
Making all in .
In file included from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/lustre_compat.h:46,
                 from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.c:37:
/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/linux/linux-fs.h:66:18: error: redefinition of 'struct file_operations'
   66 | #define proc_ops file_operations
      |                  ^~~~~~~~~~~~~~~
include/linux/proc_fs.h:29:8: note: in expansion of macro 'proc_ops'
   29 | struct proc_ops {
      |        ^~~~~~~~
In file included from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/linux/linux-misc.h:35,
                 from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/libcfs.h:43,
                 from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.c:36:
include/linux/fs.h:2060:8: note: originally defined here
 2060 | struct file_operations {
      |        ^~~~~~~~~~~~~~~
make[7]: *** [scripts/Makefile.build:271: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.o] Error 1
make[6]: *** [scripts/Makefile.build:514: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs] Error 2
make[5]: *** [scripts/Makefile.build:514: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs] Error 2
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:1862: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1] Error 2
make[3]: *** [autoMakefile:1093: modules] Error 2
make[2]: *** [autoMakefile:625: all-recursive] Error 1
make[1]: *** [autoMakefile:509: all] Error 2
error: Bad exit status from /tmp/rpmbuild-lustre--mshmt5CL/TMP/rpm-tmp.Cqd8xu (%build)

RPM build errors:
    Bad exit status from /tmp/rpmbuild-lustre--mshmt5CL/TMP/rpm-tmp.Cqd8xu (%build)
make: *** [autoMakefile:1203: rpms] Error 1

The build without -C works properly.



 Comments   
Comment by Andreas Dilger [ 29/Jul/22 ]

Shaun, you've some work with configure, any suggestions here?

Comment by Shaun Tancheff [ 30/Jul/22 ]

These commits should resolve the config-cache issue:
https://review.whamcloud.com/46562
https://review.whamcloud.com/47077

Comment by Dominika Wanat [ 01/Aug/22 ]

I've checked this commits and its source code and they've already been commited to this branch.

Comment by Shaun Tancheff [ 01/Aug/22 ]

I checked master and it seems this issue currently breaks on master as well.

It is fixed in this pending series:
https://review.whamcloud.com/#/c/48091/

Seems the first commit is enough:
https://review.whamcloud.com/#/c/38349/

Comment by Dominika Wanat [ 01/Aug/22 ]

Yes, the first commit solves the problem. Thank you.

Comment by Shaun Tancheff [ 01/Aug/22 ]

The root cause is $SUBARCH may not be defined at the time the parallel config test is generated, causing the configure test to fail when it should have succeeded.

Comment by Gerrit Updater [ 01/Aug/22 ]

"Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/48101
Subject: LU-16058 build: proc_ops check fails with SUBARCH undefined
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 282449ee0f557955299bd6fd1eee530a6b58d4b4

Comment by Gerrit Updater [ 01/Sep/22 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/48101/
Subject: LU-16058 build: proc_ops check fails with SUBARCH undefined
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 8a7aa8d5902fcffe6c8b56d0c92ee36380a26e88

Comment by Peter Jones [ 01/Sep/22 ]

Landed for 2.16

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