Replies: 3 comments
-
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
Beta Was this translation helpful? Give feedback.
-
|
@Naros yeah, cancel-in-progress: true is more "please stop scheduling new work" than "yank the power cord on a 2-hour job right now." Long-running steps (especially on self-hosted / ARC) often keep chewing until the current process exits or the runner tears down. Workarounds that help today while the feature request cooks:
Your ask is still valid though: "cancel-in-progress should mean minutes, not wait-for-current-step." That distinction belongs in the docs if GitHub can't make cancellation hard-stop everywhere. Curious: are these GitHub-hosted runners or ARC self-hosted? Behavior differs a lot there. |
Beta Was this translation helpful? Give feedback.
-
|
I would distinguish two layers here:
The concurrency docs describe the scheduling/cancellation policy: They explain that For GitHub-hosted runners, cancellation is usually reasonably quick because GitHub owns the VM lifecycle. For self-hosted/ARC runners, a long-running child process can keep doing work unless it handles termination or the pod/runner is forcefully cleaned up. A few mitigations that have helped in long integration suites:
Your product request is still valid: if GitHub cannot guarantee hard termination, the docs/UI should probably distinguish “run marked cancelled” from “active runner process has actually stopped.” For ARC users, having a first-class “force terminate current runner pod for cancelled job” behavior would be much closer to what people expect from |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
🏷️ Discussion Type
Product Feedback
💬 Feature/Topic Area
ARC (Actions Runner Controller)
Discussion Details
Our repository's push workflow has concurrency set up as follows:
The problem we face is that our workflow includes jobs that can take 60 to 150 minutes to complete, as they run a battery of integration tests across multiple databases. We had hoped that using
cancel-in-progresswould trigger an immediate termination of any active steps and jobs within a matter of minutes, allowing the next queued workflow to start.What we have found is that while this prevents the in-progress workflow from queuing up any further workflow jobs or steps within the current job, any active job steps run until they complete, rather than being terminated/killed. Given the duration of these steps, as I mentioned, this caused some pushes to wait 1h-2h before they ever start. For a CI pipeline that already takes approximately 5h to complete, this just exacerbates things.
Is there any plan or way to explicitly trigger an immediate cancellation of a workflow without having to wait on any existing active job steps to complete first?
Beta Was this translation helpful? Give feedback.
All reactions