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

LU-5834 has undesirable side-effects

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • Lustre 2.10.1, Lustre 2.11.0
    • Lustre 2.10.0
    • None
    • 3
    • 9223372036854775807

    Description

      I'll repeat the comment I left in LU-5834:

      While it's ironic that it was a member of the HYD team that originally requested this change, I wonder if it's really the behaviour we (the royal we, not the HYD we) desire.

      It seems like a good idea on the face of it, but it has undesirable side-effects in certain use cases.

      If one has both the server and client repositories configured and enabled on a node and one tries to install lustre-client one gets this behaviour:

      # yum install -y --exclude kernel-debug lustre-client kmod-lustre-client-2.10.0_RC1
      Loaded plugins: fastestmirror
      Package lustre-client is obsoleted by lustre-dkms, trying to install lustre-dkms-2.10.0-1.el7.noarch instead
      Resolving Dependencies
      --> Running transaction check
      ---> Package kmod-lustre-client.x86_64 0:2.10.0_RC1-1.01.el7.centos will be installed
      ---> Package lustre-dkms.noarch 0:2.10.0-1.el7 will be installed
      --> Processing Dependency: zfs-dkms >= 0.6.1 for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: spl-dkms >= 0.6.1 for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: dkms >= 2.2.0.3-28.git.7c3e7c5 for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: lustre-osd-zfs-mount for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: kernel-devel for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: gcc for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Processing Dependency: /usr/bin/expect for package: lustre-dkms-2.10.0-1.el7.noarch
      --> Running transaction check
      ---> Package dkms.noarch 0:2.3-5.20170523git8c3065c.el7 will be installed
      ---> Package expect.x86_64 0:5.45-14.el7_1 will be installed
      --> Processing Dependency: libtcl8.5.so()(64bit) for package: expect-5.45-14.el7_1.x86_64
      ---> Package gcc.x86_64 0:4.8.5-11.el7 will be installed
      --> Processing Dependency: cpp = 4.8.5-11.el7 for package: gcc-4.8.5-11.el7.x86_64
      --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-11.el7.x86_64
      --> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-11.el7.x86_64
      --> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-11.el7.x86_64
      ---> Package kernel-devel.x86_64 0:3.10.0-514.26.2.el7 will be installed
      ---> Package lustre-osd-zfs-mount.x86_64 0:2.10.0-1.el7 will be installed
      --> Processing Dependency: libzfs.so.2()(64bit) for package: lustre-osd-zfs-mount-2.10.0-1.el7.x86_64
      ---> Package spl-dkms.noarch 0:0.6.5.9-1.el7 will be installed
      ---> Package zfs-dkms.noarch 0:0.6.5.9-1.el7 will be installed
      --> Running transaction check
      ---> Package cpp.x86_64 0:4.8.5-11.el7 will be installed
      ---> Package glibc-devel.x86_64 0:2.17-157.el7_3.4 will be installed
      --> Processing Dependency: glibc-headers = 2.17-157.el7_3.4 for package: glibc-devel-2.17-157.el7_3.4.x86_64
      --> Processing Dependency: glibc = 2.17-157.el7_3.4 for package: glibc-devel-2.17-157.el7_3.4.x86_64
      --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-157.el7_3.4.x86_64
      ---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed
      ---> Package libzfs2.x86_64 0:0.6.5.9-1.el7 will be installed
      --> Processing Dependency: libzpool.so.2()(64bit) for package: libzfs2-0.6.5.9-1.el7.x86_64
      --> Processing Dependency: libuutil.so.1()(64bit) for package: libzfs2-0.6.5.9-1.el7.x86_64
      --> Processing Dependency: libnvpair.so.1()(64bit) for package: libzfs2-0.6.5.9-1.el7.x86_64
      ---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed
      ---> Package tcl.x86_64 1:8.5.13-8.el7 will be installed
      --> Running transaction check
      ---> Package glibc.x86_64 0:2.17-157.el7_3.1 will be updated
      --> Processing Dependency: glibc = 2.17-157.el7_3.1 for package: glibc-common-2.17-157.el7_3.1.x86_64
      ---> Package glibc.x86_64 0:2.17-157.el7_3.4 will be an update
      ---> Package glibc-headers.x86_64 0:2.17-157.el7_3.4 will be installed
      --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-157.el7_3.4.x86_64
      --> Processing Dependency: kernel-headers for package: glibc-headers-2.17-157.el7_3.4.x86_64
      ---> Package libnvpair1.x86_64 0:0.6.5.9-1.el7 will be installed
      ---> Package libuutil1.x86_64 0:0.6.5.9-1.el7 will be installed
      ---> Package libzpool2.x86_64 0:0.6.5.9-1.el7 will be installed
      --> Running transaction check
      ---> Package glibc-common.x86_64 0:2.17-157.el7_3.1 will be updated
      ---> Package glibc-common.x86_64 0:2.17-157.el7_3.4 will be an update
      ---> Package kernel-headers.x86_64 0:3.10.0-514.26.2.el7 will be installed
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      =============================================================================================================================================
       Package                         Arch              Version                                   Repository                                 Size
      =============================================================================================================================================
      Installing:
       kmod-lustre-client              x86_64            2.10.0_RC1-1.01.el7.centos                managerforlustre-lustre-client            2.1 M
       lustre-dkms                     noarch            2.10.0-1.el7                              lustre                                     13 M
      Installing for dependencies:
       cpp                             x86_64            4.8.5-11.el7                              base                                      5.9 M
       dkms                            noarch            2.3-5.20170523git8c3065c.el7              epel                                       78 k
       expect                          x86_64            5.45-14.el7_1                             base                                      262 k
       gcc                             x86_64            4.8.5-11.el7                              base                                       16 M
       glibc-devel                     x86_64            2.17-157.el7_3.4                          updates                                   1.1 M
       glibc-headers                   x86_64            2.17-157.el7_3.4                          updates                                   669 k
       kernel-devel                    x86_64            3.10.0-514.26.2.el7                       updates                                    13 M
       kernel-headers                  x86_64            3.10.0-514.26.2.el7                       updates                                   4.8 M
       libmpc                          x86_64            1.0.1-3.el7                               base                                       51 k
       libnvpair1                      x86_64            0.6.5.9-1.el7                             lustre                                     37 k
       libuutil1                       x86_64            0.6.5.9-1.el7                             lustre                                     42 k
       libzfs2                         x86_64            0.6.5.9-1.el7                             lustre                                    124 k
       libzpool2                       x86_64            0.6.5.9-1.el7                             lustre                                    424 k
       lustre-osd-zfs-mount            x86_64            2.10.0-1.el7                              lustre                                     10 k
       mpfr                            x86_64            3.1.1-4.el7                               base                                      203 k
       spl-dkms                        noarch            0.6.5.9-1.el7                             lustre                                    423 k
       tcl                             x86_64            1:8.5.13-8.el7                            base                                      1.9 M
       zfs-dkms                        noarch            0.6.5.9-1.el7                             lustre                                    1.9 M
      Updating for dependencies:
       glibc                           x86_64            2.17-157.el7_3.4                          updates                                   3.6 M
       glibc-common                    x86_64            2.17-157.el7_3.4                          updates                                    11 M
      
      Transaction Summary
      =============================================================================================================================================
      Install  2 Packages (+18 Dependent packages)
      Upgrade             (  2 Dependent packages)
      
      
      
      
      

      This is clearly not what we want to happen.  As you can see, the lustre-client package which is what we really wanted is obsoleted by lustre-dkms

      If we do a little bit of cajoling, we can get what we want:

      # yum install -y --exclude kernel-debug,lustre-dkms lustre-client kmod-lustre-client-2.10.0_RC1
       Loaded plugins: fastestmirror
       Repository managerforlustre-lustre-client is listed more than once in the configuration
       Loading mirror speeds from cached hostfile
       * epel: mirror.cs.pitt.edu
       Package chroma-agent-management-3.1.1.0-4897.85.g9c482a2.jenkins__.el7.noarch already installed and latest version
       Package chroma-agent-3.1.1.0-4897.85.g9c482a2.jenkins__.el7.noarch already installed and latest version
       Resolving Dependencies
       --> Running transaction check
       ---> Package kmod-lustre-client.x86_64 0:2.10.0_RC1-1.01.el7.centos will be installed
       ---> Package lustre-client.x86_64 0:2.10.0_RC1-1.01.el7.centos will be installed
       --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      =============================================================================================================================================
       Package Arch Version Repository Size
       =============================================================================================================================================
       Installing:
       kmod-lustre-client x86_64 2.10.0_RC1-1.01.el7.centos managerforlustre-lustre-client 2.1 M
       lustre-client x86_64 2.10.0_RC1-1.01.el7.centos managerforlustre-lustre-client 454 k
      
      Transaction Summary
       =============================================================================================================================================
       Install 2 Packages
      
      
      
      

      But this really does not feel like the element of least surprise.

      A lesser surprise to me would be for the installation of the client to just fail with an error that it conflicts with the server such that the admin realises he needs to remove the server first and then install the client.

      Attachments

        Issue Links

          Activity

            People

              wc-triage WC Triage
              brian Brian Murrell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: