Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
LND tunables are not initialized correctly when any net or lnd tunable parameter is specified via either the CLI or via the yaml config.
I noticed this with map_on_demand, but the bug potentially impacts any LND tunable where '0' is an accepted value:
/home/hornc/lustre-wc-rel/lnet/utils/lnetctl lnet configure /home/hornc/lustre-wc-rel/lnet/utils/lnetctl net add --net o2ib --if enp137s0f0 /home/hornc/lustre-wc-rel/lnet/utils/lnetctl net show -v 5 | egrep -e o2ib -e map - net type: o2ib - nid: 172.18.4.4@o2ib map_on_demand: 1 /home/hornc/lustre-wc-rel/lnet/utils/lnetctl lnet configure /home/hornc/lustre-wc-rel/lnet/utils/lnetctl net add --net o2ib --if enp137s0f0 --peer-credits=32 /home/hornc/lustre-wc-rel/lnet/utils/lnetctl net show -v 5 | egrep -e o2ib -e map - net type: o2ib - nid: 172.18.4.4@o2ib map_on_demand: 0
Issue is that when any NET or LND tunable is specified via CLI or yaml, then the whole tunables struct gets memset to 0, or in the case of yaml config, 0 gets assigned to any tunable that isn't specified in the yaml. LND then thinks that '0' was specified by user and will use that value (if it is valid).