[LU-7541] rpm build failed in 2.7.1 Created: 10/Dec/15  Updated: 13/Jan/16  Resolved: 13/Jan/16

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

Type: Bug Priority: Critical
Reporter: Jay Lan (Inactive) Assignee: Jian Yu
Resolution: Fixed Votes: 0
Labels: None
Environment:

centos 7.1.


Attachments: File config.log     HTML File log-rpms     File nas-config.sh.mofed31.el71.271     File nas-make.sh.el71.271    
Issue Links:
Related
is related to LU-6697 build SRPM target should not depend f... Resolved
is related to LU-6001 cleanup build scripts after reorganiz... Closed
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

When building lustre-2.7.1 rpms in a centos 7.1 chroot environment, the build failed:

...
if test -d "lustre-2.7.1"; then find "lustre-2.7.1" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "lustre-2.7.1" ||

{ sleep 5 && rm -rf "lustre-2.7.1"; }

; else :; fi
rpmbuilddir=`mktemp t -d rpmbuild-lustre$USER-XXXXXXXX`; \
make \
rpmbuilddir="$rpmbuilddir" rpm-local || exit 1; \
/bin/rpmbuild \
--define "_tmppath $rpmbuilddir/TMP" \
--define "_topdir $rpmbuilddir" \
--define "build_src_rpm 1" \
--define "dist %

{nil}

" \
-ts lustre-2.7.1.tar.gz || exit 1; \
cp $rpmbuilddir/SRPMS/lustre-2.7.1-*.src.rpm . || exit 1; \
rm -rf $rpmbuilddir
make[1]: Entering directory `/tmp.chroot/nas-2.7.1-fe'
make[1]: Leaving directory `/tmp.chroot/nas-2.7.1-fe'
sed: can't read /lib/modules/2.6.32-358.6.2.el6.x86_64/build/include/linux/version.h: No such file or directory
error: line 138: Version required: Requires: kernel =
make: *** [srpm] Error 1

I did specify
--with-linux=/usr/src/kernels/${kversion} \
when running `configure`, so the path should be used instead of "/lib/modules/`uname -r`"

Also config.log showed the version.h exists at include/generated/uapi/linux/version.h:
...
configure:13640: checking for /usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271/include/linux/version.h
configure:13654: result: no
configure:13661: checking for /usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271/include/generated/uapi/linux/version.h
configure:13675: result: yes

I did not have this problem in 2.x.y build up to 2.5.3. Changes made in 2.7 broke my build.

I will attach config.log and log-rpms files.
:q



 Comments   
Comment by Peter Jones [ 11/Dec/15 ]

Jay

Am I correct in assuming that this is not an Sev1 (i.e site down) situation for NASA and you are in fact just exploring for a possible future upgrade?

Peter

Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

Hi Peter,

You were right that this does not affect production systems. Please downgrade the priority.

Mahmoud wants to move to 2.7.1 after 2.5.3. There are features in 2.7 that Mahmoud wants and he is breathing on my neck.

Comment by Peter Jones [ 11/Dec/15 ]

Jay

Mahmoud is not the only one to find 2.7.x interesting

Jian

Could you please assist Jay?

Thanks

Peter

Comment by Jian Yu [ 11/Dec/15 ]

Hi Jay,

Could you please try adding "--with-linux-obj=/usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271" to run ./configure?

Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

$ ./configure --enable-tests --enable-mpitests=yes --with-o2ib=/usr/src/ofa_kernel/lustre271 --with-linux=/usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271 --with-linux-obj=/usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271 --with-downstream-release=1nasS_mofed31v1 --with-release=1nasS_mofed31v1_3.10.0-229.20.1.el7.20151203.x86_64.lustre271

I got the same error at building rpm.

Comment by Jian Yu [ 11/Dec/15 ]

Hi Jay,

Could you please list the steps and commands you used for the building process? Thank you.

Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

Attached are two scripts:
nas-config.sh.mofed31.el71.271
nas-make.sh.el71.271

I ran the two scripts one after another.

Comment by Jian Yu [ 11/Dec/15 ]

Thank you, Jay.

For /usr/src/kernels/3.10.0-229.20.1.el7.20151203.x86_64.lustre271, did you patch the kernel with Lustre kernel patches and build it from source?

FYI, https://build.hpdd.intel.com/job/lustre-manual/lastSuccessfulBuild/artifact/lustre_manual.html#dbdoclet.50438210_65411

Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

Yes I did, Jian.
Thanks!

Comment by Jian Yu [ 11/Dec/15 ]

Hi Jay,

I just checked the configure logs of passed build against Lustre 2.7.1 and also found:

checking for /var/lib/jenkins/workspace/lustre-b2_7_fe/arch/x86_64/build_type/server/distro/el7/ib_stack/inkernel/BUILD/reused/usr/src/kernels/3.10.0-229.14.1.el7_lustre.gc77f399.x86_64/include/linux/version.h... no
checking for /var/lib/jenkins/workspace/lustre-b2_7_fe/arch/x86_64/build_type/server/distro/el7/ib_stack/inkernel/BUILD/reused/usr/src/kernels/3.10.0-229.14.1.el7_lustre.gc77f399.x86_64/include/generated/uapi/linux/version.h... yes

So, it's no problem that version.h is located under include/generated/uapi/linux/.

And the configure command we used was:

./configure --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-linux=/var/lib/jenkins/workspace/lustre-b2_7_fe/arch/x86_64/build_type/server/distro/el7/ib_stack/inkernel/BUILD/reused/usr/src/kernels/3.10.0-229.14.1.el7_lustre.gc77f399.x86_64 --with-linux-obj=/var/lib/jenkins/workspace/lustre-b2_7_fe/arch/x86_64/build_type/server/distro/el7/ib_stack/inkernel/BUILD/reused/usr/src/kernels/3.10.0-229.14.1.el7_lustre.gc77f399.x86_64 --with-release=3.10.0_229.14.1.el7_lustre.gc77f399.x86_64 --enable-tests --enable-utils --enable-modules --with-kmp-moddir=extra
Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

Thanks, I will take a look later to get the version.h problem resolved.

For now I simply copied the version.h to where the build process looks for and got it moving along.

Well, the build failed to find llbackup. Unfortunately, the file, used to be in lustre/utils/llbackup in 2.5.3, does not exist in 2.7.1.

If that file is pulled from 2.7.1, the build process should do so accordingly.

Comment by Jian Yu [ 11/Dec/15 ]

Hi Jay,

Well, the build failed to find llbackup. Unfortunately, the file, used to be in lustre/utils/llbackup in 2.5.3, does not exist in 2.7.1.

Did you happen to use an old version of lustre.spec.in to build Lustre 2.7.1?

In Lustre 2.7.1 source codes:

$ grep llbackup * -rn | grep -v tags | grep -v doc
$ 

In Lustre 2.5.3 source codes:

$ grep llbackup * -rn | grep -v tags | grep -v doc
lustre/utils/Makefile.am:19:bin_scripts = llstat llobdstat plot-llstat llbackup
lustre.spec.in:353:%attr(-, root, root) %{_bindir}/llbackup
$

So, for Lustre 2.7.1, it would not hit the llbackup issue.

Comment by Jay Lan (Inactive) [ 11/Dec/15 ]

Old version of lustre.spec.in would not work for 2.7.1 at all.
I will look into this problem later. I need to create lustre 2.7.1 server rpms for our developers.

So far, I hacked around the problems I have encountered.

Comment by Minh Diep [ 19/Dec/15 ]

Jay, please apply this http://review.whamcloud.com/#/c/15181/ to see if it fixes

Comment by Jay Lan (Inactive) [ 19/Dec/15 ]

Hi Minh, can you create a patch for 2.7.1?
Thanks!

Comment by Peter Jones [ 22/Dec/15 ]

Jay

Try these two patches that have already been ported to the 2.7 FE branch

LU-6001: http://review.whamcloud.com/17678
LU-6697: http://review.whamcloud.com/17679

Peter

Comment by Jay Lan (Inactive) [ 07/Jan/16 ]

Hi Peter,

The above two ported patches did solve my problem.
Please land the patches and close this ticket.

Thanks!
Jay

Comment by Jian Yu [ 13/Jan/16 ]

Patches landed.

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