Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-12395

Failed dependencies while installing lustre-client-tests and lustre-iokit rpms on RHEL 8.0 client

Details

    • 3
    • 9223372036854775807

    Description

      While installing lustre-client-tests and lustre-iokit rpms on RHEL 8.0 client, they hit the following dependency issues:

      error: Failed dependencies:
      	libmpi.so.40()(64bit) is needed by lustre-client-tests-2.12.54-1.el8.x86_64
      	python > 2.2 is needed by lustre-iokit-2.12.54-1.el8.x86_64
      

      On RHEL 8.0, openmpi provides "libmpi.so.40()(64bit)(openmpi-x86_64)", not "libmpi.so.40()(64bit)". There are python2 and python3 on RHEL 8.0, no python.

      Attachments

        Issue Links

          Activity

            [LU-12395] Failed dependencies while installing lustre-client-tests and lustre-iokit rpms on RHEL 8.0 client

            Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/35374
            Subject: LU-12395 build: build mpitests for el8
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: edb4cd7414988cb7fdce3aa2332876377131d764

            gerrit Gerrit Updater added a comment - Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/35374 Subject: LU-12395 build: build mpitests for el8 Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: edb4cd7414988cb7fdce3aa2332876377131d764

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/35251/
            Subject: LU-12395 build: require python2 for lustre-iokit
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set:
            Commit: 9ffeaac8ec9ad338f6d2639fd5a2d7fafb6725c6

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/35251/ Subject: LU-12395 build: require python2 for lustre-iokit Project: fs/lustre-release Branch: b2_12 Current Patch Set: Commit: 9ffeaac8ec9ad338f6d2639fd5a2d7fafb6725c6
            mdiep Minh Diep added a comment -

            this issue has not completed. we still need to split the lustre-client-tests rpm

            mdiep Minh Diep added a comment - this issue has not completed. we still need to split the lustre-client-tests rpm

            Jian Yu (yujian@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/35251
            Subject: LU-12395 build: require python2 for lustre-iokit
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set: 1
            Commit: 58fc7991c903e15d49b814130f663667d01a24b5

            gerrit Gerrit Updater added a comment - Jian Yu (yujian@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/35251 Subject: LU-12395 build: require python2 for lustre-iokit Project: fs/lustre-release Branch: b2_12 Current Patch Set: 1 Commit: 58fc7991c903e15d49b814130f663667d01a24b5
            pjones Peter Jones added a comment -

            Landed for 2.13

            pjones Peter Jones added a comment - Landed for 2.13

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/35094/
            Subject: LU-12395 build: require python2 for lustre-iokit
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 6f0fcc289887737f45687b5f8a15835aeab32ef4

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/35094/ Subject: LU-12395 build: require python2 for lustre-iokit Project: fs/lustre-release Branch: master Current Patch Set: Commit: 6f0fcc289887737f45687b5f8a15835aeab32ef4
            dongyang Dongyang Li added a comment -

            Yes we should still have the lustre-client-tests rpm which has the common binary and scripts,

            and 2 additional lustre-client-tests-openmpi and lustre-client-tests-mpich for the mpt tests only, like the example listed in the fedora wiki:

            https://fedoraproject.org/wiki/Packaging:MPI

            Still we need to make sure changing the specs won't break the build for old distros like CentOS7

            dongyang Dongyang Li added a comment - Yes we should still have the lustre-client-tests rpm which has the common binary and scripts, and 2 additional lustre-client-tests-openmpi and lustre-client-tests-mpich for the mpt tests only, like the example listed in the fedora wiki: https://fedoraproject.org/wiki/Packaging:MPI Still we need to make sure changing the specs won't break the build for old distros like CentOS7

            Does it make sense to split out the MPI tests into a separate RPM, namely lustre-client-tests-openmpi and lustre-client-tests-mpich, but keep the rest of the test binaries/scripts in lustre-client-tests? That avoids increasing the size of the build products. Alternately, we just build one or the other MPI RPMs, but name them appropriately and add the appropriate Requires: line so that it will refuse to install with the wrong packages.

            Since very few users beyond autotest will ever install lustre-client-tests-*mpi I don't think we need to spend too much time making this work everywhere.

            adilger Andreas Dilger added a comment - Does it make sense to split out the MPI tests into a separate RPM, namely lustre-client-tests-openmpi and lustre-client-tests-mpich , but keep the rest of the test binaries/scripts in lustre-client-tests ? That avoids increasing the size of the build products. Alternately, we just build one or the other MPI RPMs, but name them appropriately and add the appropriate Requires: line so that it will refuse to install with the wrong packages. Since very few users beyond autotest will ever install lustre-client-tests-*mpi I don't think we need to spend too much time making this work everywhere.
            dongyang Dongyang Li added a comment -

            I think I know what's going on with the MPI dependencies now.

            RHEL8 has rpm-mpi-hooks, which will generate the provides/requires for different mpi libs.

            https://fedoraproject.org//wiki/Changes/RpmMPIReqProv

            This is done to distinguish e.g. libmpi.so from openmpi and mpich. What that means is we should have 2 additional lutre-client-tests rpms, like lustre-client-tests-openmpi and lustre-client-tests-mpich to package the mpi tests, and they will have different dependencies on libmpi.so

            According to https://fedoraproject.org/wiki/Packaging:MPI

            the binary should be placed under /usr/lib64/openmpi/bin or /usr/lib64/mpich/bin

            This means we need to change the rpm build spec and maybe the test scripts assuming the location of the mpi tests.

            The same should also be done for the IOR package.

            Before that happens a walkaround is disabling the mpi tests, can be achieved by removing the openmpi/mpich packages from the build system, or use --enable-mpitests=no configure option.

            dongyang Dongyang Li added a comment - I think I know what's going on with the MPI dependencies now. RHEL8 has rpm-mpi-hooks, which will generate the provides/requires for different mpi libs. https://fedoraproject.org//wiki/Changes/RpmMPIReqProv This is done to distinguish e.g. libmpi.so from openmpi and mpich. What that means is we should have 2 additional lutre-client-tests rpms, like lustre-client-tests-openmpi and lustre-client-tests-mpich to package the mpi tests, and they will have different dependencies on libmpi.so According to  https://fedoraproject.org/wiki/Packaging:MPI the binary should be placed under /usr/lib64/openmpi/bin or /usr/lib64/mpich/bin This means we need to change the rpm build spec and maybe the test scripts assuming the location of the mpi tests. The same should also be done for the IOR package. Before that happens a walkaround is disabling the mpi tests, can be achieved by removing the openmpi/mpich packages from the build system, or use --enable-mpitests=no configure option.

            Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/35094
            Subject: LU-12395 build: require python2 for lustre-iokit
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: f56ae83d3125e2b5a32732386ba30f48f5151725

            gerrit Gerrit Updater added a comment - Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/35094 Subject: LU-12395 build: require python2 for lustre-iokit Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: f56ae83d3125e2b5a32732386ba30f48f5151725
            yujian Jian Yu added a comment -

            Hi Dongyang,
            I used the client rpms built by Jenkins:
            https://build.whamcloud.com/job/lustre-master/3904/arch=x86_64,build_type=client,distro=el8,ib_stack=inkernel/
            Here is the build log:
            https://build.whamcloud.com/job/lustre-master/3904/arch=x86_64,build_type=client,distro=el8,ib_stack=inkernel/consoleFull

            # rpm -qpR lustre-client-tests-2.12.54-1.el8.x86_64.rpm
            /bin/bash
            /bin/sh
            /usr/bin/getconf
            /usr/bin/perl
            attr
            kmod-lustre-client = 2.12.54
            kmod-lustre-client-tests = 2.12.54
            libc.so.6()(64bit)
            libc.so.6(GLIBC_2.14)(64bit)
            libc.so.6(GLIBC_2.2.5)(64bit)
            libc.so.6(GLIBC_2.28)(64bit)
            libc.so.6(GLIBC_2.3)(64bit)
            libc.so.6(GLIBC_2.3.4)(64bit)
            libc.so.6(GLIBC_2.4)(64bit)
            libc.so.6(GLIBC_2.7)(64bit)
            libkeyutils.so.1()(64bit)
            liblustreapi.so.1()(64bit)
            libmpi.so.40()(64bit)
            libpthread.so.0()(64bit)
            libpthread.so.0(GLIBC_2.2.5)(64bit)
            libreadline.so.7()(64bit)
            libtool
            lsof
            lustre-client = 2.12.54
            lustre-iokit
            perl
            perl(FileHandle)
            perl(Getopt::Std)
            perl(IO::Handle)
            perl(POSIX)
            perl(Socket)
            perl(strict)
            perl(vars)
            rpmlib(CompressedFileNames) <= 3.0.4-1
            rpmlib(FileDigests) <= 4.6.0-1
            rpmlib(PayloadFilesHavePrefix) <= 4.0-1
            rpmlib(PayloadIsXz) <= 5.2-1
            rsync
            rtld(GNU_HASH)
            
            # rpm -qa | grep mpi
            orc-compiler-0.4.28-2.el8.x86_64
            compiler-rt-7.0.1-1.module+el8+2560+c32c7af1.x86_64
            mpitests-mvapich2-psm2-5.4.2-4.el8.x86_64
            rpm-mpi-hooks-5-4.el8.noarch
            openmpi-devel-3.1.2-5.el8.x86_64
            omping-0.0.4-14.el8.x86_64
            mpitests-mvapich2-5.4.2-4.el8.x86_64
            exempi-2.4.5-2.el8.x86_64
            mpich-devel-3.2.1-9.el8.x86_64
            libcmpiCppImpl0-2.0.3-15.el8.x86_64
            openmpi-3.1.2-5.el8.x86_64
            mpich-3.2.1-9.el8.x86_64
            mpitests-openmpi-5.4.2-4.el8.x86_64
            mpitests-mpich-5.4.2-4.el8.x86_64
            
            # rpm -ivh IOR-2.10.3-wc1.x86_64.rpm 
            error: Failed dependencies:
            	libmpi.so.40()(64bit) is needed by IOR-2.10.3-wc1.x86_64
            
            yujian Jian Yu added a comment - Hi Dongyang, I used the client rpms built by Jenkins: https://build.whamcloud.com/job/lustre-master/3904/arch=x86_64,build_type=client,distro=el8,ib_stack=inkernel/ Here is the build log: https://build.whamcloud.com/job/lustre-master/3904/arch=x86_64,build_type=client,distro=el8,ib_stack=inkernel/consoleFull # rpm -qpR lustre-client-tests-2.12.54-1.el8.x86_64.rpm /bin/bash /bin/sh /usr/bin/getconf /usr/bin/perl attr kmod-lustre-client = 2.12.54 kmod-lustre-client-tests = 2.12.54 libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.28)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libkeyutils.so.1()(64bit) liblustreapi.so.1()(64bit) libmpi.so.40()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libreadline.so.7()(64bit) libtool lsof lustre-client = 2.12.54 lustre-iokit perl perl(FileHandle) perl(Getopt::Std) perl(IO::Handle) perl(POSIX) perl(Socket) perl(strict) perl(vars) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rsync rtld(GNU_HASH) # rpm -qa | grep mpi orc-compiler-0.4.28-2.el8.x86_64 compiler-rt-7.0.1-1.module+el8+2560+c32c7af1.x86_64 mpitests-mvapich2-psm2-5.4.2-4.el8.x86_64 rpm-mpi-hooks-5-4.el8.noarch openmpi-devel-3.1.2-5.el8.x86_64 omping-0.0.4-14.el8.x86_64 mpitests-mvapich2-5.4.2-4.el8.x86_64 exempi-2.4.5-2.el8.x86_64 mpich-devel-3.2.1-9.el8.x86_64 libcmpiCppImpl0-2.0.3-15.el8.x86_64 openmpi-3.1.2-5.el8.x86_64 mpich-3.2.1-9.el8.x86_64 mpitests-openmpi-5.4.2-4.el8.x86_64 mpitests-mpich-5.4.2-4.el8.x86_64 # rpm -ivh IOR-2.10.3-wc1.x86_64.rpm error: Failed dependencies: libmpi.so.40()(64bit) is needed by IOR-2.10.3-wc1.x86_64

            People

              dongyang Dongyang Li
              yujian Jian Yu
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: