Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.10.0
-
None
-
3
-
9223372036854775807
Description
lctl conf_param and lctl set_param -P are broken for llite parameters (probably due to an ordering issue between the processing of the config logs and creation of the subdirectory of /proc/fs/llite corresponding to the mount point. Both work as expected for a client that was mounted when the parameter was set but fail for subsequently mounted clients.
Using lctl conf_param:
m:~# llmount.sh ... m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff880036686000.xattr_cache=1 m:~# lctl conf_param lustre.llite.xattr_cache=0 m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff880036686000.xattr_cache=1 m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff880036686000.xattr_cache=0 m:~# umount /mnt/lustre m:~# mount m@tcp:/lustre /mnt/lustre -t lustre -o user_xattr,flock m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff88001017d800.xattr_cache=1 m:~# sleep 60 && lctl get_param llite.*.xattr_cache llite.lustre-ffff88001017d800.xattr_cache=1 m:~# sleep 60 && lctl get_param llite.*.xattr_cache llite.lustre-ffff88001017d800.xattr_cache=1 m:~# llmountcleanup.sh ...
Using lctl set_param -P:
m:~# mllmount.sh ... m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff88000ee70800.xattr_cache=1 m:~# lctl set_param -P llite.*.xattr_cache=0 m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff88000ee70800.xattr_cache=1 m:~# sleep 10 && lctl get_param llite.*.xattr_cache llite.lustre-ffff88000ee70800.xattr_cache=0 m:~# umount /mnt/lustre m:~# mount m@tcp:/lustre /mnt/lustre -t lustre -o user_xattr,flock m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff880007858000.xattr_cache=1 m:~# sleep 60 && lctl get_param llite.*.xattr_cache llite.lustre-ffff880007858000.xattr_cache=1 m:~# sleep 60 && lctl get_param llite.*.xattr_cache llite.lustre-ffff880007858000.xattr_cache=1
If a second client is mounted (on the same node) then the param will
be set correctly on the first mount point but not on the second.
m:~# mount m@tcp:/lustre /mnt/lustre2 -t lustre -o user_xattr,flock m:~# lctl get_param llite.*.xattr_cache llite.lustre-ffff880007858000.xattr_cache=0 llite.lustre-ffff88006cddb800.xattr_cache=1