[lustre-devel] fixing last lctl set_param -P problem

NeilBrown neilb at suse.com
Tue Sep 4 15:02:10 PDT 2018


On Tue, Sep 04 2018, James Simmons wrote:

> I originally posted this in the LU-7004 jira ticket :
>
> https://jira.whamcloud.com/browse/LU-7004
>
> but no one has replied so I thought it would be good to post here.
>
> So this is last regression with lctl set_param -P. Some test use the form 
> get the parameter value:
>
> lctl set_param osc.lustre-OST0001-osc-[^M]*.active=1
>
> The shell seems to expand this properly or the get_param routine parses 
> this correctly.

It isn't "The shell" that does the expansion, it is the glob() library
function.
According to "man 7 glob", the correct syntax for an inverted character
set is
   [!M]
not
   [^M]

([^M] is for regexp, [!M] is for glob.  Bash confused people by
accepting both for glob).

>
> Now if I run on the MGS lctl set_param -P osc.lustre-OST0001-osc[^M]*.active=1
> then the [^M] is actually cached in the config logs. The function 
> obdname2fsname() chokes on this wildcard. So the question is how to handle this.
> I see the following option:
>
> 1) Make the shell expand the [^M] to some value before passing the string 
>    to lctl itself. Have to look at this.
>
> 2) Use regex or something in the C code of lctl to expand this out before 
>    packing the data for the ioctl on the MGS.
>
> 3) Change the test scripts to drop the [^M] for lctl set_param -P.

  4) Change the test script to use the correct syntax: [!M]

NeilBrown

>
> Which is the best option?
>
>
> _______________________________________________
> lustre-devel mailing list
> lustre-devel at lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20180905/0e52c115/attachment.sig>


More information about the lustre-devel mailing list