<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:36:46 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-10626] utils/tests: lctl set_param -P does not appear to do anything</title>
                <link>https://jira.whamcloud.com/browse/LU-10626</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When running sanity-hsm on a single node setup I run into this error:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Set HSM on and start
Waiting 20 secs for update
Waiting 10 secs for update
Update not seen after 20s: wanted &apos;enabled&apos; got &apos;stopped&apos;
 sanity-hsm : @@@@@@ FAIL: hsm_control state is not &apos;enabled&apos; on mds1 
  Trace dump:
  = /home/guest/lustre-release/lustre/tests/test-framework.sh:5336:error()
  = /home/guest/lustre-release/lustre/tests/sanity-hsm.sh:617:mdts_check_param()
  = /home/guest/lustre-release/lustre/tests/sanity-hsm.sh:723:cdt_check_state()
  = /home/guest/lustre-release/lustre/tests/sanity-hsm.sh:1005:main()
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It seems &lt;tt&gt;lctl set_param -P mdt.*.hsm_control enabled&lt;/tt&gt; silently fails. I do not know if it was recently modified... I tested it on other hsm tunables, it did not work either. Without the -P option, everything works fine.&lt;/p&gt;</description>
                <environment></environment>
        <key id="50684">LU-10626</key>
            <summary>utils/tests: lctl set_param -P does not appear to do anything</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="simmonsja">James A Simmons</assignee>
                                    <reporter username="cealustre">CEA</reporter>
                        <labels>
                            <label>cea</label>
                    </labels>
                <created>Wed, 7 Feb 2018 08:46:08 +0000</created>
                <updated>Wed, 5 Aug 2020 13:50:23 +0000</updated>
                            <resolved>Sat, 17 Nov 2018 02:59:20 +0000</resolved>
                                                    <fixVersion>Lustre 2.12.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="220307" author="jhammond" created="Wed, 7 Feb 2018 14:23:24 +0000"  >&lt;p&gt;Hi Quentin,&lt;/p&gt;

&lt;p&gt;Is this on a  local build? It may be the same as &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10627&quot; title=&quot;tests/utils: lhsmtool_posix now runs lt-lhsmtool_posix and breaks tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10627&quot;&gt;&lt;del&gt;LU-10627&lt;/del&gt;&lt;/a&gt;. It may be that bind mounting &lt;tt&gt;/usr/sbin/lctl&lt;/tt&gt; to &lt;tt&gt;$LUSTRE/utils/lctl&lt;/tt&gt; no longer works with the libtool script. &lt;/p&gt;</comment>
                            <comment id="220546" author="bougetq" created="Fri, 9 Feb 2018 08:19:26 +0000"  >&lt;p&gt;Hi John,&lt;/p&gt;

&lt;p&gt;Yes it is on a local build. Your workaround for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10627&quot; title=&quot;tests/utils: lhsmtool_posix now runs lt-lhsmtool_posix and breaks tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10627&quot;&gt;&lt;del&gt;LU-10627&lt;/del&gt;&lt;/a&gt; solved this too. Thanks again.&lt;/p&gt;</comment>
                            <comment id="222951" author="bougetq" created="Fri, 9 Mar 2018 09:50:29 +0000"  >&lt;p&gt;Well, the workaround stopped working. It still works for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10627&quot; title=&quot;tests/utils: lhsmtool_posix now runs lt-lhsmtool_posix and breaks tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10627&quot;&gt;&lt;del&gt;LU-10627&lt;/del&gt;&lt;/a&gt; though. Any ideas?&lt;/p&gt;

&lt;p&gt;For now, I am stuck with:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;mounting lustre;&lt;/li&gt;
	&lt;li&gt;setting mdt.*.hsm_control to enabled manually (without the &quot;-P&quot; flag);&lt;/li&gt;
	&lt;li&gt;launching sanity-hsm.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="224608" author="riauxjb" created="Tue, 27 Mar 2018 14:39:31 +0000"  >&lt;p&gt;Hi Quentin,&lt;/p&gt;

&lt;p&gt;Was it a single node setup ?&lt;br/&gt;
I am currently working on this and I have the same behavior but whatever the param specified (not only hsm_control), and using wildcards or not.&lt;br/&gt;
Moreover, passing &lt;ins&gt;non existing value is not reported&lt;/ins&gt;.&lt;/p&gt;

&lt;p&gt;On a single node setup:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 tests]# ./llmount.sh
Stopping clients: mds1 /mnt/lustre (opts:-f)
Stopping clients: mds1 /mnt/lustre2 (opts:-f)
Loading modules from /home/riauxjb/master3/lustre-release/lustre
detected 4 online CPUs by sysfs
Force libcfs to create 2 CPU partitions
../libcfs/libcfs/libcfs options: &apos;cpu_npartitions=2&apos;
gss/krb5 is not supported
quota/lquota options: &apos;hash_lqs_cur_bits=3&apos;
Formatting mgs, mds, osts
Format mds1: /tmp/lustre-mdt1
Format mds2: /tmp/lustre-mdt2
Format ost1: /tmp/lustre-ost1
Format ost2: /tmp/lustre-ost2
Format ost3: /tmp/lustre-ost3
Format ost4: /tmp/lustre-ost4
Checking servers environments
Checking clients mds1 environments
Loading modules from /home/riauxjb/master3/lustre-release/lustre
detected 4 online CPUs by sysfs
Force libcfs to create 2 CPU partitions
gss/krb5 is not supported
Setup mgs, mdt, osts
Starting mds1:   /dev/mapper/mds1_flakey /mnt/lustre-mds1
Commit the device label on /tmp/lustre-mdt1
Started lustre-MDT0000
Starting mds2:   /dev/mapper/mds2_flakey /mnt/lustre-mds2
Commit the device label on /tmp/lustre-mdt2
Started lustre-MDT0001
Starting ost1:   /dev/mapper/ost1_flakey /mnt/lustre-ost1
Commit the device label on /tmp/lustre-ost1
Started lustre-OST0000
Starting ost2:   /dev/mapper/ost2_flakey /mnt/lustre-ost2
Commit the device label on /tmp/lustre-ost2
Started lustre-OST0001
Starting ost3:   /dev/mapper/ost3_flakey /mnt/lustre-ost3
Commit the device label on /tmp/lustre-ost3
Started lustre-OST0002
Starting ost4:   /dev/mapper/ost4_flakey /mnt/lustre-ost4
Commit the device label on /tmp/lustre-ost4
Started lustre-OST0003
Starting client: mds1:  -o user_xattr,flock mds1@tcp:/lustre /mnt/lustre
UUID                   1K-blocks        Used   Available Use% Mounted on
lustre-MDT0000_UUID       125368        2008      112124   2% /mnt/lustre[MDT:0]
lustre-MDT0001_UUID       125368        1832      112300   2% /mnt/lustre[MDT:1]
lustre-OST0000_UUID       325368       13648      284560   5% /mnt/lustre[OST:0]
lustre-OST0001_UUID       325368       13652      284556   5% /mnt/lustre[OST:1]
lustre-OST0002_UUID       325368       13652      284556   5% /mnt/lustre[OST:2]
lustre-OST0003_UUID       325368       13652      284556   5% /mnt/lustre[OST:3]

filesystem_summary:      1301472       54604     1138228   5% /mnt/lustre

Using TIMEOUT=20
seting jobstats to procname_uid
Setting lustre.sys.jobid_var from disable to procname_uid
Waiting 90 secs for update
disable quota as required

[root@mds1 tests]# /home/riauxjb/master3/lustre-release/lustre/utils/lctl set_param -P mdt.lustre-MDT0001.hsm_control=enabled
[root@mds1 tests]# lctl get_param  mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
mdt.lustre-MDT0001.hsm_control=stopped

[root@mds1 tests]# lctl get_param  mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
mdt.lustre-MDT0001.hsm_control=stopped

[root@mds1 tests]# lctl get_param  mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
mdt.lustre-MDT0001.hsm_control=stopped

[root@mds1 tests]# /home/riauxjb/master3/lustre-release/lustre/utils/lctl set_param -P mdt.lustre-MDT0001.hsm_control=bs
[root@mds1 tests]# 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But it&apos;s working fine when Lustre is deployed on separated nodes (here, one MDS, two OSS, one OSS as client):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 models]# shine format -f testfs
Format testfs on mds1,oss[1-2]: are you sure? (y)es/(N)o: y
Format successful.
= FILESYSTEM STATUS (testfs) =
TYPE # STATUS  NODES
---- - ------  -----
MGT  1 offline mds1
MDT  2 offline mds1
OST  2 offline oss[1-2]
[root@mds1 models]# shine start -f testfs
[16:25] In progress for 2 component(s) on oss[1-2] ...
Start successful.
= FILESYSTEM STATUS (testfs) =
TYPE # STATUS NODES
---- - ------ -----
MGT  1 online mds1
MDT  2 online mds1
OST  2 online oss[1-2]

[root@mds1 models]# lctl get_param mdt.*.hsm_control
mdt.testfs-MDT0000.hsm_control=disabled
mdt.testfs-MDT0001.hsm_control=disabled
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 models]# lctl set_param -P mdt.*.hsm_control=enalbed
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;=&amp;gt; typo, no warning!&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 models]# lctl set_param -P mdt.*.hsm_control=enabled
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Wait a few seconds:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 models]# lctl get_param mdt.*.hsm_control
mdt.testfs-MDT0000.hsm_control=enabled
mdt.testfs-MDT0001.hsm_control=enabled
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I am currently investigating with gdb &quot;lctl&quot; with set_param -P&quot; option.&lt;/p&gt;</comment>
                            <comment id="224662" author="simmonsja" created="Tue, 27 Mar 2018 21:40:13 +0000"  >&lt;p&gt;Do you have the udev rule installed?&lt;/p&gt;</comment>
                            <comment id="224691" author="riauxjb" created="Wed, 28 Mar 2018 08:24:51 +0000"  >&lt;p&gt;I have this:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@mds1 tests]# cat /etc/udev/rules.d/99-lustre.rules
KERNEL==&quot;obd&quot;, MODE=&quot;0666&quot;
# set sysfs values on client
SUBSYSTEM==&quot;lustre&quot;, ACTION==&quot;change&quot;, ENV{PARAM}==&quot;?*&quot;, RUN+=&quot;/usr/sbin/lctl set_param $env{PARAM}=$env{SETTING}&quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="225025" author="bougetq" created="Tue, 3 Apr 2018 13:37:24 +0000"  >&lt;p&gt;Hi Jean-Baptiste,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Was it a single node setup ?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Yes, it was.&lt;/p&gt;

&lt;p&gt;Hi James,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Do you have the udev rule installed?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I have the same udev rules installed as Jean-Baptiste.&lt;br/&gt;
&#160;&lt;br/&gt;
I just noticed this by the way (still on&#160; a single node setup):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root]# llmount.sh
[root]# lctl get_param mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
[root]# lctl set_param -P mdt.*.hsm_control=enabled
[root]# lctl get_param mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
[root]# lctl set_param mdt.*.hsm_control=enabled
error: set_param: setting /proc/fs/lustre/mdt/lustre-MDT0000/hsm_control=enabled: Operation already in progress
[root]# lctl get_param mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=enabled
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Hope this helps =)&lt;/p&gt;</comment>
                            <comment id="225026" author="simmonsja" created="Tue, 3 Apr 2018 13:49:48 +0000"  >&lt;p&gt;This is libtool wrapper issue. I&apos; thinking about a solution for this. The issue is all the $LUSTRE/util path being used. It shoudl be $LUSTRE/util/.lib. I&apos;m trying to figure out a clean method to fix this.&lt;/p&gt;</comment>
                            <comment id="225028" author="bougetq" created="Tue, 3 Apr 2018 14:07:59 +0000"  >&lt;p&gt;Are you sure? I used the &quot;--disable-shared&quot; option with ./configure...&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root]# which lctl
/usr/sbin/lctl
[root]# head -c 4 /usr/sbin/lctl | tail -c 3
ELF
[root]# pwd
/home/root/lustre-release
[root]# find -name &quot;.lib&quot;
[root]#
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="225031" author="simmonsja" created="Tue, 3 Apr 2018 14:43:50 +0000"  >&lt;p&gt;Oh that is interesting. So this only happens on single node setup? This is really strange. Let me see if I can duplicate it.&lt;/p&gt;</comment>
                            <comment id="230291" author="bougetq" created="Mon, 16 Jul 2018 14:51:55 +0000"  >&lt;p&gt;Is there any way to emulate &quot;lctl set_param -P&quot;?&lt;/p&gt;</comment>
                            <comment id="230294" author="simmonsja" created="Mon, 16 Jul 2018 15:41:59 +0000"  >&lt;p&gt;I&apos;m going to try this out on my Ubuntu18 setup once I get e2fsprogs for it.&lt;/p&gt;</comment>
                            <comment id="230997" author="simmonsja" created="Fri, 27 Jul 2018 13:47:39 +0000"  >&lt;p&gt;Can you try patch &lt;a href=&quot;https://review.whamcloud.com/#/c/32835&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/32835&lt;/a&gt;&#160;to see if it resolves your issues.&lt;/p&gt;</comment>
                            <comment id="231057" author="bougetq" created="Mon, 30 Jul 2018 12:25:42 +0000"  >&lt;p&gt;No, it does not.&lt;/p&gt;

&lt;p&gt;I finally debugged this though, the issue is related to whether or not you use an equal sign to set a parameter with lctl set_param -P. For example:&lt;/p&gt;

&lt;p&gt;Without &apos;=&apos;:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root]# lctl set_param -P mdt.*.hsm_control enabled
[root]# sleep 6
[root]# dmesg | tail
[ 3226.555763] LDISKFS-fs (dm-2): file extents enabled, maximum tree depth=5
[ 3226.560817] LDISKFS-fs (dm-2): mounted filesystem with ordered data mode. Opts: errors=remount-ro
[ 3226.578427] LDISKFS-fs (dm-2): file extents enabled, maximum tree depth=5
[ 3226.583304] LDISKFS-fs (dm-2): mounted filesystem with ordered data mode. Opts: errors=remount-ro,no_mbcache,nodelalloc
[ 3230.763833] Lustre: Mounted lustre-client
[ 3231.860718] Lustre: DEBUG MARKER: Using TIMEOUT=20
[ 3285.107374] LustreError: 16495:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.114621] LustreError: 16505:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.121183] LustreError: 16506:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.127897] LustreError: 16507:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[root]# lctl get_param mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=stopped
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I checked, &lt;tt&gt;mdt_hsm_cdt_control_seq_write()&lt;/tt&gt; receives a NULL pointer as its &lt;tt&gt;(const __user char *)buffer&lt;/tt&gt; argument. This is what lead me to check &lt;tt&gt;lustre/utils/lustre_cfg.c:jt_lcfg_mgsparam2()&lt;/tt&gt; and try the same lctl command with the &apos;=&apos; sign:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root]# lctl set_param -P mdt.*.hsm_control=enabled
[root]# sleep 6
[root]# dmesg | tail
[ 3226.583304] LDISKFS-fs (dm-2): mounted filesystem with ordered data mode. Opts: errors=remount-ro,no_mbcache,nodelalloc
[ 3230.763833] Lustre: Mounted lustre-client
[ 3231.860718] Lustre: DEBUG MARKER: Using TIMEOUT=20
[ 3285.107374] LustreError: 16495:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.114621] LustreError: 16505:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.121183] LustreError: 16506:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3285.127897] LustreError: 16507:0:(mdt_coordinator.c:2161:mdt_hsm_cdt_control_seq_write()) lustre-MDT0000: Valid coordinator control commands are: enabled shutdown disabled purge help
[ 3357.759861] LustreError: 16707:0:(mdt_coordinator.c:1092:mdt_hsm_cdt_start()) lustre-MDT0000: Coordinator already started or stopping
[ 3357.766074] LustreError: 16708:0:(mdt_coordinator.c:1092:mdt_hsm_cdt_start()) lustre-MDT0000: Coordinator already started or stopping
[ 3357.772283] LustreError: 16709:0:(mdt_coordinator.c:1092:mdt_hsm_cdt_start()) lustre-MDT0000: Coordinator already started or stopping
[root]# lctl get_param mdt.*.hsm_control
mdt.lustre-MDT0000.hsm_control=enabled
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I believe the repeated outputs in dmesg are symptomatic of an issue of its own (which may be more of a feature than a bug, I do not really know).&lt;/p&gt;</comment>
                            <comment id="231252" author="simmonsja" created="Wed, 1 Aug 2018 16:47:41 +0000"  >&lt;p&gt;Now I totally understand why it fails. In fact I&apos;m surprised it ever passed. You MUST use &apos;=&apos; with command &quot;lctl set_param -P $param=$value&quot;. That is what gets cached into the config logs. This is a bug buried in the hsm testing scripts. I&apos;m working on supporting lctl set_param -P so I will include a fix in&#160;&#160;&lt;a href=&quot;https://review.whamcloud.com/#/c/30087/so&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/30087&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="231304" author="bougetq" created="Thu, 2 Aug 2018 07:21:30 +0000"  >&lt;p&gt;&amp;gt; You MUST use &apos;=&apos; with command &quot;lctl set_param -P $param=$value&quot;.&lt;/p&gt;

&lt;p&gt;But why? &quot;&lt;tt&gt;lctl set_param param value&lt;/tt&gt;&quot; handles things just fine.&lt;/p&gt;

&lt;p&gt;&amp;gt; This is a bug buried in the hsm testing scripts.&lt;/p&gt;

&lt;p&gt;I would not say that. To me this is a bug buried in &lt;tt&gt;lctl set_param -P&lt;/tt&gt;&apos;s parser:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;no error is reported&lt;/li&gt;
	&lt;li&gt;this behaviour is not consistent with that of &lt;tt&gt;lctl set_param&lt;/tt&gt; (without the &lt;tt&gt;-P&lt;/tt&gt; option).&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="231673" author="adilger" created="Wed, 8 Aug 2018 20:53:55 +0000"  >&lt;p&gt;The use of &lt;tt&gt;lctl set_param&lt;/tt&gt; without an &apos;=&apos; is not very good.  It was accepted for some time for compatibility reasons, but I&apos;d rather print a warning if the argument is not &lt;tt&gt;param=value&lt;/tt&gt;.  Using it without &apos;=&apos; makes it harder to parse, especially if there are multiple values on the same command-line (which &lt;tt&gt;lctl&lt;/tt&gt; can handle just fine), and it is more prone to errors.&lt;/p&gt;</comment>
                            <comment id="231702" author="bougetq" created="Thu, 9 Aug 2018 08:36:04 +0000"  >&lt;p&gt;Ok, so we &lt;em&gt;only&lt;/em&gt; need to add a warning to &quot;lctl set_param&quot; and an error report to &quot;lctl set_param -P&quot; when they are used with the &quot;param value&quot; syntax.&lt;/p&gt;

&lt;p&gt;By the way, sanity-hsm actually uses the right syntax, I just did not run &lt;tt&gt;make install&lt;/tt&gt; on my setup so the upcall to /sbin/lctl (silently) fails. Is there something we can do to support lctl not being installed at the correct path?&lt;/p&gt;</comment>
                            <comment id="231704" author="adilger" created="Thu, 9 Aug 2018 09:20:30 +0000"  >&lt;p&gt;It would be better if &quot;lctl set_param -P&quot; also worked with the improper syntax, and only printed a warning.&lt;/p&gt;</comment>
                            <comment id="232520" author="simmonsja" created="Thu, 23 Aug 2018 17:09:30 +0000"  >&lt;p&gt;So this is something broken for a very long time. With udev rules it is possible to work around this. So what you want to do is create a udev rule on the fly of the format:&lt;/p&gt;

&lt;p&gt;SUBSYSTEM==&quot;lustre&quot;, ACTION==&quot;change&quot;, ENV{PARAM}==&quot;?*&quot;, RUN+=&quot;/my/absolete/path/lctl set_param &apos;$env{PARAM}=$env{SETTING}&apos;&quot;&lt;/p&gt;

&lt;p&gt;You must generate the above with the absolute path to your lctl you are using in your local source tree. So this has to be generated on the fly. udev rules can NOT use relative paths except if they are stored in /lib/udev which is not what we want.&lt;/p&gt;

&lt;p&gt;That generated rule must be stored in the udev temporary location which is &quot;/dev/.udev/rules.d/*&quot;&lt;/p&gt;

&lt;p&gt;Then you need to restart udevd with the command&#160;&lt;/p&gt;

&lt;p&gt;udevadm control --reload-rules&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;With this info I bet you can create a patch for the test suite to make it work without&#160;&lt;/p&gt;

&lt;p&gt;/etc/udev/rules.d/99-lustre.rules installed. I would recommend only doing the above if 99-lustre.rules is missing.&lt;/p&gt;</comment>
                            <comment id="232567" author="bougetq" created="Fri, 24 Aug 2018 09:33:15 +0000"  >&lt;p&gt;As I mentioned, sanity-hsm already uses the right syntax. The reason the test suite failed on my setup is that I usually do not install Lustre on my VM. Most of the time this is fine, but not for &lt;tt&gt;lctl set_param -P&lt;/tt&gt; which I guess translates to an upcall to &lt;tt&gt;lctl &amp;lt;something&amp;gt;&lt;/tt&gt; on the mgs. If Lustre is not installed, the upcall points to a non-existent file (&lt;tt&gt;/usr/sbin/lctl&lt;/tt&gt;).&lt;/p&gt;

&lt;p&gt;The syntax mess only complicated the debugging.&lt;/p&gt;

&lt;p&gt;I think there are two things that need fixing:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;The syntax inconsistency (but maybe the udev rule is already good enough);&lt;/li&gt;
	&lt;li&gt;The silent failures of &lt;tt&gt;lctl set_param -P&lt;/tt&gt;.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="233376" author="gerrit" created="Wed, 12 Sep 2018 02:22:42 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33143&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33143&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10626&quot; title=&quot;utils/tests: lctl set_param -P does not appear to do anything&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10626&quot;&gt;&lt;del&gt;LU-10626&lt;/del&gt;&lt;/a&gt; test: create custom udev rule&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2fff4fb16c64e243cd2a1cc71766dfd1ba0c71bc&lt;/p&gt;</comment>
                            <comment id="237131" author="gerrit" created="Sat, 17 Nov 2018 01:26:17 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33143/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33143/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10626&quot; title=&quot;utils/tests: lctl set_param -P does not appear to do anything&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10626&quot;&gt;&lt;del&gt;LU-10626&lt;/del&gt;&lt;/a&gt; test: create custom udev rule&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 73ecd83a24e220b8097facf5bf3f5d93f523702c&lt;/p&gt;</comment>
                            <comment id="237136" author="simmonsja" created="Sat, 17 Nov 2018 02:58:57 +0000"  >&lt;p&gt;I moved the lctl set_param -P brokeness to another ticket.&lt;/p&gt;</comment>
                            <comment id="237239" author="bougetq" created="Tue, 20 Nov 2018 11:39:19 +0000"  >&lt;p&gt;Ok, thanks.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="36381">LU-8066</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="31474">LU-7004</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="54055">LU-11677</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53271">LU-11361</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzzsdj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>