Repository navigation
Report a workflow step deadline as reached instead of as silence - #1875
Merged
Merged
Conversation
A step that is still working is killed by the same timer as one whose Bot never answered, so "no reply for N minutes" sent the reader looking for a missing reply. Name the deadline the step reached, and let define_workflow carry stepTimeoutMinutes (1..120) so a new lane is not stuck on the 45-minute default. Refs #1868
Collaborator
Author
|
Verdict: PASS at c5180fe Ran at this tip: The two base files above are the blobs of Review notes (T2, 7 files, +86/−20, base
Not run: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Written-by: Dev
Fixes #1868
Owner: Dev
Reviewer: Reviewer
What changed
plugins/workflow/src/service.jsexpireStep(): the stage line key is now{node} step deadline reached ({minutes} min), the run was marked failed.(zh:{node} 这一步到达 {minutes} 分钟的截止时间,run 已标记失败。) andrun.failure.textisstep deadline reached (<minutes> min)instead ofno reply for <minutes> minutes.code: 'step-failed',nodeName, the warn line, release and drain are unchanged; the deadline stays hard.plugins/workflow/src/service.jsdefine():stepTimeoutMinutesis forwarded tocreate(), which validates it throughstepTimeoutValue()— a bad value is refused withstepTimeoutMinutes is an integer from 1 to 120, not dropped; omitted keeps 45.plugins/workflow/index.js:define_workflowgains the optionalstepTimeoutMinutesparameter (1..120) and mentions it in the description.plugins/workflow/client.jsandplugins/workflow/test/timeline-locale.test.js: the zh stage map and the pinned deadline frame follow the new key/copy. Both pin the old wording and are outside Triage's file list, but without them the suite is red or the zh line shows the English key.plugins/workflow/test/deadline.test.js: the two workflow: a step that is still working is killed at the 45-minute deadline and reported as "no reply" #1868 cases (deadline wording + define() pass-through / refusal / default).docs/subsystems/workflow.mdandchangelog.d/1868-expire-reason.fixed.md.Red first: the two new cases were added before the fix and failed on the old text —
no reply for 45 minutesinstead ofstep deadline reached (45 min), and45 !== 90becausedefine()dropped the field (log: i1868-impl/red.txt at baseline e76a404; live main0e84a54still carries the same wording).Base: this branch is on live
main0e84a547641988982b45def3edc0378c87455068(tree06f8e1253f8a18dd3bc3c7c7cad6d292be483a2d), re-read when the commit was built — not on the oldere76a404the working copy started from. The diff against live main is exactly these seven files.Ran at this tip:
Not run:
TZ=UTC npm run verifyas a whole — it stops at core lint becausecore/scripts/check-arch-docs.mjsneeds a git checkout and this box has no git (cannot diff against main); every other half was run above or on the same content. The core suite was run separately: 2246 tests, 2244 pass, 2 fail, both environmental and in files this change does not touch (check-arch-docs.test.jsneeds git;usage-fields.test.jsexpects node 24). Smoke test not run — no change undercore/index.jsorcore/src/host/.Checkpoint
{
"pr": 1875,
"claim": "Dev",
"issue": 1868,
"summary": "expireStep() now says "step deadline reached (N min)" in the stage line and in run.failure, keeping code step-failed, nodeName and the release/drain path, because a step still working is killed by the same timer as one whose Bot never replied. define() forwards stepTimeoutMinutes to create(), so define_workflow can set 1..120; a bad value is refused and an omitted one keeps the 45-minute default. The zh stage map, the pinned deadline frame and docs/subsystems/workflow.md follow the new wording, and two red-first cases in deadline.test.js cover both halves.",
"files": [
"docs/subsystems/workflow.md",
"plugins/workflow/client.js",
"plugins/workflow/index.js",
"plugins/workflow/src/service.js",
"plugins/workflow/test/deadline.test.js",
"plugins/workflow/test/timeline-locale.test.js",
"changelog.d/1868-expire-reason.fixed.md"
],
"checks": {
"ran": "cd plugins/workflow && TZ=UTC npm test; node scripts/lint-plugins.mjs; node .github/scripts/check-mojibake.mjs --check; node .github/scripts/changelog.mjs check",
"result": "green",
"at": "c5180fe0f51d58ead79e2d2fae0b124b95e6f8a4"
},
"next": "none — ready for review (T2: a PASS is needed at the tip)"
}