[LU-10556] lustre client rebuild not building lnetctl Created: 23/Jan/18 Updated: 28/Mar/18 Resolved: 26/Mar/18 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.10.2 |
| Fix Version/s: | Lustre 2.11.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Alex Kulyavtsev | Assignee: | James A Simmons |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
OS: SLF 6.8 |
||
| Issue Links: |
|
||||||||||||||||
| Severity: | 3 | ||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
|
Similar to lnetctl not present in lustre-client rpm rpm rebuild from source. lnetctl is present in prebuilt rpm. It will be extremely helpful to have "rpmbuild --rebuild" to build lustre client rpm with the same content and functionality as lustre-client rpm from distro. The lustre client rpm rebuild is required time to time through lifecycle of the cluster. It shall be possible to do this type of work by administrators without knowledge of lustre internals. I had to explicitly use flags as listed below to get lnetctl: I did not try rpm rebuild for SLF 7.4 as distro version worked for me. The other aspect, we have to document rpm rebuild procedure. |
| Comments |
| Comment by James A Simmons [ 23/Jan/18 ] |
|
Do you have libyaml-devel package installed? |
| Comment by Alex Kulyavtsev [ 23/Jan/18 ] |
|
Yes, both libyaml libyaml-devel installed - I learned that during the server build. I rebuilt rpm with / without disable-dlc flag and it made the difference so it is not related to host configuration (with libyaml present). config.status shows for the plain rebuild "--without servers" and without explicitly setting flags lnet-dlc that enable_dlc is set no (disabled) by default and this prevents building lnetctl. aclocal.m4 : # LN_CONFIG_DLC # # Configure dlc if enabled # # if libyaml is set (IE libyaml installed) and enable_dlc = yes then build # dlc other wise (IE if libyaml is not set or enable_dlc = no) then don't # build dlc. Because distro rpm has dlc enabled, we shall have set enable_dlc = yes by default (at least when libyaml installed) and explicitly disable dlc when it is not needed and/or libyaml not installed. At this point I'm OK with workaround; It is important to have client rpm to be rebuild with the same configuration as rpm in distro without unpacking and digging into source rpm. |
| Comment by Andreas Dilger [ 23/Jan/18 ] |
|
If we are marking the lctl versions of the commands deprecated in 2.11 (per LU-10003) it makes sense to have enable_dlc set by default. Alex, if you already have a patch for this, could you please submit it to Gerrit so we can land that for 2.11 and backport it for a 2.10 maintenance release. James, I see that in LU-9897 there is a change to the lustre.spec.in file that removes the conditional build of liblnetconfig.so but it doesn't add libyaml or yaml-devel (or whatever) package to the Build-requires: line. That should probably be added. |
| Comment by James A Simmons [ 24/Jan/18 ] |
|
Yep. I missed adding that dependency. BTW while working with the LU-9897 patch I noticed Debian/Ubuntu have no dependencies in its build files!!!! I was waiting for Martin's Ubuntu server patches to land first before I fix that. |
| Comment by Gerrit Updater [ 21/Mar/18 ] |
|
Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/31710 |
| Comment by Alex Kulyavtsev [ 23/Mar/18 ] |
|
I confirm /usr/sbin/lnetctl present in lustre-client rpm built from lustre-2.11.0_RC1_1_gac4da53-1.src.rpm on SLF 7.4: 3.10.0-693.11.1.el7.x86_64 and SLF 6.8: 2.6.32-642.15.1.el6.x86_64
I grabbed source rpm from build server (artifact of build triggered by patch 31710) wget http://build.lustre.org/downloads/31710/1/centos/7.2/SRPM/lustre-2.11.0_RC1_1_gac4da53-1.src.rpm DIR=../downloads/build.lustre.org SRPM=lustre-2.11.0_RC1_1_gac4da53-1.src.rpm rpmbuild --rebuild --without servers --define 'configure_args --disable-gss --disable-gss-keyring' $DIR/$SRPM
|
| Comment by Alex Kulyavtsev [ 23/Mar/18 ] |
|
There is unrelated gss issue on SLF 7 node (it can be also some rpms are installed/missing). I had to add flags on SLF7 node to resolve error: --define 'configure_args --disable-gss --disable-gss-keyring' File not found: /root/rpmbuild/BUILDROOT/lustre-2.11.0_RC1_1_gac4da53-1.x86_64/etc/request-key.d/lgssc.conf
Built completed OK on SLF 6.8 node.
I guess gss is disabled by default in lustre.spec.in . If by some reason gss is enabled lustre build shall provide default on build host or do not complain. I read lgssc.conf is not used on client host until gss is configured:
|
| Comment by James A Simmons [ 24/Mar/18 ] |
|
Alex I have a patch for the gss issues : https://review.whamcloud.com/#/c/3175. That is tracked under |
| Comment by Gerrit Updater [ 26/Mar/18 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31710/ |
| Comment by Peter Jones [ 26/Mar/18 ] |
|
Landed for 2.11 |
| Comment by Gerrit Updater [ 27/Mar/18 ] |
|
James Nunez (james.a.nunez@intel.com) uploaded a new patch: https://review.whamcloud.com/31800 |