Skip to content

tool-params interval not passed to tools when using vals array format #857

Description

@atheurer

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:

  1. Have blockbreaker / the tool-param expansion code handle vals arrays by taking vals[0] as a fallback
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Queued

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions