Skip to content

mod/soigneur: fix the workflow filter - #5217

Merged
AkihiroSuda merged 2 commits into
containerd:mainfrom
AkihiroSuda:fix-5216
Sep 17, 2026
Merged

AkihiroSuda merged 2 commits into
containerd:mainfrom
AkihiroSuda:fix-5216

Conversation

@AkihiroSuda

Copy link
Copy Markdown
Member

index(f) evaluates f against its own input, which here is $wanted, the
array of workflow file names - not the run being filtered. So .workflow
indexed an array, and the collector died before it collected anything:

jq: error (at :0): Cannot index array with string "workflow"

Feed the name to IN instead, which takes the run as its input.

This only ever failed when workflows was set, because or short
circuits and the empty list takes the other branch. Setting it is what
the nerdctl workflow does, and leaving it unset is what every local run
of the collector did, which is how this shipped.

Fixes #5216

Assisted-by: Claude Opus 5 (1M context) noreply@anthropic.com

`index(f)` evaluates f against its own input, which here is $wanted, the
array of workflow file names - not the run being filtered. So `.workflow`
indexed an array, and the collector died before it collected anything:

  jq: error (at <stdin>:0): Cannot index array with string "workflow"

Feed the name to IN instead, which takes the run as its input.

This only ever failed when `workflows` was set, because `or` short
circuits and the empty list takes the other branch. Setting it is what
the nerdctl workflow does, and leaving it unset is what every local run
of the collector did, which is how this shipped.

Fixes containerd#5216

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
A dashboard that runs once a week takes a week to tell you it is broken,
and the configuration that broke in containerd#5216 - a workflow filter - was the
one no local run ever used. So the module gets a test for the branches
that the report itself does not walk: the filter with and without names,
the markers and the block that predates them, the names a hostile log
can carry, the aggregation of a parent test with its subtests, and the
validators.

Everything is offline: the API is stubbed, and the fixtures are written
by the test. The scripts only dispatch when executed, so that sourcing
one defines its functions and runs nothing.

The workflow follows mod/tigron's: every push to main, and the pull
requests that touch the module, or the reporter on the other side of the
marker contract.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
@AkihiroSuda AkihiroSuda added this to the v2.4.0 milestone Sep 17, 2026
@AkihiroSuda AkihiroSuda added the area/ci e.g., CI failure label Sep 17, 2026
@AkihiroSuda
AkihiroSuda requested a review from ktock September 17, 2026 09:34
@AkihiroSuda
AkihiroSuda merged commit 8bd82df into containerd:main Sep 17, 2026
31 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci e.g., CI failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

flaky-test-dashboard failing: jq: error (at <stdin>:0): Cannot index array with string "workflow"

2 participants