Details

    • Bug
    • Resolution: Fixed
    • Critical
    • None
    • Lustre 2.7.0
    • None
    • centos 7.1.
    • 3
    • 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

      Attachments

        1. config.log
          359 kB
        2. log-rpms
          26 kB
        3. nas-config.sh.mofed31.el71.271
          1 kB
        4. nas-make.sh.el71.271
          0.3 kB

        Issue Links

          Activity

            [LU-7541] rpm build failed in 2.7.1
            yujian Jian Yu added a comment -

            Patches landed.

            yujian Jian Yu added a comment - Patches landed.

            Hi Peter,

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

            Thanks!
            Jay

            jaylan Jay Lan (Inactive) added a comment - Hi Peter, The above two ported patches did solve my problem. Please land the patches and close this ticket. Thanks! Jay
            pjones Peter Jones added a comment -

            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

            pjones Peter Jones added a comment - 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

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

            jaylan Jay Lan (Inactive) added a comment - Hi Minh, can you create a patch for 2.7.1? Thanks!
            mdiep Minh Diep added a comment -

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

            mdiep Minh Diep added a comment - Jay, please apply this http://review.whamcloud.com/#/c/15181/ to see if it fixes

            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.

            jaylan Jay Lan (Inactive) added a comment - 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.
            yujian Jian Yu added a comment -

            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.

            yujian Jian Yu added a comment - 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.

            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.

            jaylan Jay Lan (Inactive) added a comment - 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.
            yujian Jian Yu added a comment -

            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
            
            yujian Jian Yu added a comment - 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

            Yes I did, Jian.
            Thanks!

            jaylan Jay Lan (Inactive) added a comment - Yes I did, Jian. Thanks!

            People

              yujian Jian Yu
              jaylan Jay Lan (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: