-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
3
-
9223372036854775807
Description
split_output() in lustre/tests/yaml.sh writes each node.<host>.yml via an unquoted echo $line. Under bash this word-splits the line and re-joins words with single spaces, stripping the leading indentation of the Build: and Node: block bodies.
The result is invalid YAML: with their fields at column 0, Build: and Node: parse as null, so consumers lose all build/environment info (architecture, os_distribution, version, kernel_version) and per-node details (architecture, mem_size, nids).
Regression
Introduced by commit 182aa9aa01f (LU-12597), a "whitespace and style cleanup" that changed echo "$line" to echo $line, dropping the quotes.
Scope
Only the non-shared logdir path (do_rpc_nodes ... | split_output) is affected; runs with a shared logdir write each node's file directly, which is why it went unnoticed.
Example
Buggy output (fields at column 0 – Build: parses as null):
Build: lbats_build_id: architecture: aarch64 os_distribution: Rocky 10.1 version: 2.17.53.12 kernel_version: 6.12.0-124.56.1.el10_1.aarch64 file_system: ldiskfs
Correct output:
Build:
lbats_build_id:
architecture: aarch64
os_distribution: Rocky 10.1
version: 2.17.53.12
kernel_version: 6.12.0-124.56.1.el10_1.aarch64
file_system: ldiskfs
Fix
Quote the line so indentation is preserved, and use read -r to avoid mangling backslashes.
Verification
Reproduced end-to-end against a results consumer: a real auster run with the buggy yaml.sh imported empty Build/Node blocks (architecture, mem_size, nids, os_distribution, kernel_version, version all blank); the same run with the fixed yaml.sh imported all fields correctly.