[LU-16037] lustre-client-dkms Fails to Install on SLES 15 SP3 Created: 22/Jul/22  Updated: 26/Aug/22  Resolved: 19/Aug/22

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

Type: Bug Priority: Blocker
Reporter: Hamidreza Zohouri Assignee: Jian Yu
Resolution: Fixed Votes: 0
Labels: DKMS
Environment:

SLES 15 SP3
Kernel 5.3.18-57-default
DKMS 2.3-bp153.1.17


Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

Hi.

I am trying to install Lustre Client 2.15 on SLES 15 SP3 with the default kernel and dkms packages, but the installation of the lustre-client-dkms package fails with the following log:

 

(13/13) Installing: lustre-client-dkms-2.15.0-1.noarch ...................................................................................................[done]
Additional rpm output:
Loading new lustre-client-2.15.0 DKMS files...
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #0.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #1.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #2.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #3.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #4.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #5.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #6.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #7.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #8.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #9.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #10.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #11.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #12.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #13.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #14.
dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with
'/kernel', '/updates', or '/extra' in record #15.
Error! Bad conf file.
File: /usr/src/lustre-client-2.15.0/dkms.conf
does not represent a valid dkms.conf file.
warning: %post(lustre-client-dkms-2.15.0-1.noarch) scriptlet failed, exit status 8

 

 

The package is being installed directly using zypper (zypper in lustre-client-dkms), after adding the following repo:

https://downloads.whamcloud.com/public/lustre/lustre-2.15.0/sles15sp3/client/

 

A similar issue had been reported before and apparently fixed in Lustre 2.9 here:

https://jira.whamcloud.com/browse/LU-8630

I am not sure if it has come back, or the fix is somehow not getting applied to installation on SLES. Is there a fix or work-around for this?



 Comments   
Comment by Peter Jones [ 25/Jul/22 ]

JIan

Has this issue already been fixed in 2.15.1?

Peter

Comment by Jian Yu [ 25/Jul/22 ]

I can reproduce the failure.
In dkms.conf:

# Common modules for both Client & Server
BUILT_MODULE_NAME[${#BUILT_MODULE_NAME[@]}]="lnet_selftest"
BUILT_MODULE_LOCATION[${#BUILT_MODULE_LOCATION[@]}]="lnet/selftest/"
DEST_MODULE_LOCATION[${#DEST_MODULE_LOCATION[@]}]="/ updates/lnet/"
BUILT_MODULE_NAME[${#BUILT_MODULE_NAME[@]}]="lnet"
BUILT_MODULE_LOCATION[${#BUILT_MODULE_LOCATION[@]}]="lnet/lnet/"
DEST_MODULE_LOCATION[${#DEST_MODULE_LOCATION[@]}]="/ updates/lnet/"
<~snip~>

Somehow there is an extra space in the location value. Investigating.

Comment by Jian Yu [ 25/Jul/22 ]
+ lustre/scripts/dkms.mkconf -n lustre-client -v 2.15.1_RC1_dirty -f dkms.conf '-k updates'
+ PROG=lustre/scripts/dkms.mkconf
+ kmoddir=extra
+ getopts n:v:f:k: opt
+ case $opt in
+ pkgname=lustre-client
+ getopts n:v:f:k: opt
+ case $opt in
+ pkgver=2.15.1_RC1_dirty
+ getopts n:v:f:k: opt
+ case $opt in
+ filename=dkms.conf
+ getopts n:v:f:k: opt
+ case $opt in
+ kmoddir=' updates'             <---------------------- extra space

dkms.mkconf was called from lustre-dkms.spec.in as follows:

%if "%{_vendor}" == "redhat" || "%{_vendor}" == "fedora"
        %global kmod_name kmod-%{lustre_name}
        %define mkconf_options %{nil}
#for Suse / Ubuntu
%else
        %global kmod_name %{lustre_name}-kmp
        %define mkconf_options "-k updates"
%endif
<~snip~>
%build
%{mkconf} -n %{module} -v %{version} -f dkms.conf %{mkconf_options}

We need to find a way to pass "-k updates" option to dkms.mkconf without being wrapped with single quotes.

Comment by Jian Yu [ 25/Jul/22 ]

Hi utopiabound,
I saw the changes were introduced from https://review.whamcloud.com/28210. Did the extra space issue occur at that time?

I made the following changes to remove the quotes around the "-k updates" option:

diff --git a/lustre-dkms.spec.in b/lustre-dkms.spec.in
index c749b087b8bb..6627889b3b7a 100644
--- a/lustre-dkms.spec.in
+++ b/lustre-dkms.spec.in
@@ -122,7 +122,7 @@ the repository with other debuginfo rpms.
 %setup -q -n @PACKAGE@-%{version}
 
 %build
-%{mkconf} -n %{module} -v %{version} -f dkms.conf %{mkconf_options}
+%{mkconf} -n %{module} -v %{version} -f dkms.conf %(echo %{mkconf_options} | sed -e 's/"//g')

With the above change, lustre-client-dkms can be built and installed successfully. I'll submit the change to Gerrit after my login issue is resolved.

Comment by Gerrit Updater [ 26/Jul/22 ]

"Jian Yu <yujian@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/48044
Subject: LU-16037 build: remove quotes from %

{mkconf_options}

Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 55fe9cd68a59d3c85ed2000311e02d2b844832c9

Comment by Gerrit Updater [ 04/Aug/22 ]

"Jian Yu <yujian@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/48117
Subject: LU-16037 build: remove quotes from %

{mkconf_options}

Project: fs/lustre-release
Branch: b2_15
Current Patch Set: 1
Commit: b2801d9892fd6466594afabe94740a345deaa6c8

Comment by Gerrit Updater [ 19/Aug/22 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/48044/
Subject: LU-16037 build: remove quotes from %

{mkconf_options}

Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 33efefc496159f7d0caed0fa85d8f92603060ae2

Comment by Peter Jones [ 19/Aug/22 ]

Landed for 2.16

Comment by Gerrit Updater [ 20/Aug/22 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/48117/
Subject: LU-16037 build: remove quotes from %

{mkconf_options}

Project: fs/lustre-release
Branch: b2_15
Current Patch Set:
Commit: 10d8a10f832bfa71cf3fe32d1fad3e1b548fc74c

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