Bug description
Backend: VL (Velox)
Gluten version: main branch
.github/workflows/velox_backend_ansi.yml listens for every created issue_comment, while its workflow-level concurrency group is stable per PR and has cancel-in-progress: true:
on:
issue_comment:
types: [created]
concurrency:
group: ${{ github.repository }}-ansi-${{ github.event.issue.number || inputs.pr_number }}
cancel-in-progress: true
The /ansi-test and /ansi-analyze command check is only applied later at jobs.check-comment.if. Workflow-level concurrency is evaluated before that job condition, so any unrelated conversation comment on the same PR can:
- Start an
issue_comment workflow in the same concurrency group.
- Cancel an in-flight
/ansi-test or /ansi-analyze run.
- Skip
check-comment because the new comment is not an ANSI command, leaving no replacement run.
Expected behavior: Only a recognized ANSI command or a manual workflow_dispatch run should cancel an older ANSI run for the same PR.
Actual behavior: Any newly created PR conversation comment can cancel it.
Confirmed reproduction
This was reproduced on PR #12906:
- At
2026-08-27T05:38:58Z, this comment containing /ansi-test started ANSI run 33043165559.
- The workflow acknowledged the active run, and
build-native-lib started at 05:39:12Z.
- At
05:39:40Z, an unrelated follow-up comment was posted.
- Two seconds later it created non-command ANSI run 33043202388 in the same concurrency group.
- The original run's
build-native-lib job was cancelled at 05:39:59Z, while every job in the replacement run was skipped. The original ANSI run therefore disappeared without a replacement.
The same concurrency ordering caused a confirmed eight-shard Delta Spark UT cancellation and is fixed for that workflow by #12906.
Proposed fix
Mirror the command predicate from jobs.check-comment.if in concurrency.cancel-in-progress, as #12906 does for /delta-test, or route non-command comments to a unique concurrency group keyed by github.run_id/github.event.comment.id.
The latter fully isolates unrelated comments, including from the single-pending-run replacement behavior of GitHub Actions concurrency. In either approach, preserve these behaviors:
- A newer
/ansi-test or /ansi-analyze command cancels the older ANSI run for that PR.
workflow_dispatch can replace an older manual run for the same PR.
- Unrelated issue and PR comments neither cancel nor displace real ANSI runs.
Related: #12906
This issue was written with assistance from GitHub Copilot CLI 1.0.80.
Bug description
Backend: VL (Velox)
Gluten version: main branch
.github/workflows/velox_backend_ansi.ymllistens for every createdissue_comment, while its workflow-level concurrency group is stable per PR and hascancel-in-progress: true:The
/ansi-testand/ansi-analyzecommand check is only applied later atjobs.check-comment.if. Workflow-level concurrency is evaluated before that job condition, so any unrelated conversation comment on the same PR can:issue_commentworkflow in the same concurrency group./ansi-testor/ansi-analyzerun.check-commentbecause the new comment is not an ANSI command, leaving no replacement run.Expected behavior: Only a recognized ANSI command or a manual
workflow_dispatchrun should cancel an older ANSI run for the same PR.Actual behavior: Any newly created PR conversation comment can cancel it.
Confirmed reproduction
This was reproduced on PR #12906:
2026-08-27T05:38:58Z, this comment containing/ansi-teststarted ANSI run 33043165559.build-native-libstarted at05:39:12Z.05:39:40Z, an unrelated follow-up comment was posted.build-native-libjob was cancelled at05:39:59Z, while every job in the replacement run was skipped. The original ANSI run therefore disappeared without a replacement.The same concurrency ordering caused a confirmed eight-shard Delta Spark UT cancellation and is fixed for that workflow by #12906.
Proposed fix
Mirror the command predicate from
jobs.check-comment.ifinconcurrency.cancel-in-progress, as #12906 does for/delta-test, or route non-command comments to a unique concurrency group keyed bygithub.run_id/github.event.comment.id.The latter fully isolates unrelated comments, including from the single-pending-run replacement behavior of GitHub Actions concurrency. In either approach, preserve these behaviors:
/ansi-testor/ansi-analyzecommand cancels the older ANSI run for that PR.workflow_dispatchcan replace an older manual run for the same PR.Related: #12906
This issue was written with assistance from GitHub Copilot CLI 1.0.80.