Problem
When tool-params in a run file use the benchmark mv-params vals array format instead of the tool-params val string format, the parameter value is not passed to the tool's start script. The tool receives --interval (empty value) instead of --interval 3.
Expected behavior
The tool-params schema (schema/tool-params.json) requires arg + val (both strings):
{"tool": "ethtool", "params": [{"arg": "interval", "val": "3"}]}
But the benchmark mv-params schema uses vals (array of strings):
{"arg": "duration", "vals": ["60"], "role": "client"}
When an LLM agent (or user) constructs a run file, it's easy to use the wrong format since both are in the same JSON document. When vals is used instead of val for tool params, blockbreaker (or wherever tool params are expanded into CLI args) silently produces an empty value.
Observed behavior
sysstat-start log:
args: --interval
interval=
Starting mpstat
ethtool-start log:
interval=
Interval must be a positive integer, exiting
This caused:
- mpstat to run a single snapshot instead of collecting at 3s intervals over 60s
- ethtool to fail to start entirely
- procstat to produce incomplete/zero data in CDM
Impact
All per-CPU and per-NIC time-resolved data was lost for a 400G network performance investigation because the tools didn't collect at the expected interval.
Suggestion
Either:
- Have blockbreaker / the tool-param expansion code handle
vals arrays by taking vals[0] as a fallback
- Or fail loudly at run-file validation time if
vals is used in tool-params instead of val
Option 2 is safer — the schema already defines val as required, but if blockbreaker processes the params before schema validation, the error is silent.
Problem
When tool-params in a run file use the benchmark mv-params
valsarray format instead of the tool-paramsvalstring format, the parameter value is not passed to the tool's start script. The tool receives--interval(empty value) instead of--interval 3.Expected behavior
The tool-params schema (
schema/tool-params.json) requiresarg+val(both strings):{"tool": "ethtool", "params": [{"arg": "interval", "val": "3"}]}But the benchmark mv-params schema uses
vals(array of strings):{"arg": "duration", "vals": ["60"], "role": "client"}When an LLM agent (or user) constructs a run file, it's easy to use the wrong format since both are in the same JSON document. When
valsis used instead ofvalfor tool params, blockbreaker (or wherever tool params are expanded into CLI args) silently produces an empty value.Observed behavior
sysstat-start log:
ethtool-start log:
This caused:
Impact
All per-CPU and per-NIC time-resolved data was lost for a 400G network performance investigation because the tools didn't collect at the expected interval.
Suggestion
Either:
valsarrays by takingvals[0]as a fallbackvalsis used in tool-params instead ofvalOption 2 is safer — the schema already defines
valas required, but if blockbreaker processes the params before schema validation, the error is silent.