Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(action): handle user cancellation #46

Merged
merged 1 commit into from
Dec 11, 2024
Merged

Conversation

soonum
Copy link
Contributor

@soonum soonum commented Dec 10, 2024

This is useful in start mode where one can cancel before the instance is actually ready. This way a best-effort is produced to clean up any spawned instance instead of it turning into a zombie.

@soonum soonum requested a review from IceTDrinker December 10, 2024 15:21
@soonum soonum self-assigned this Dec 10, 2024
@soonum soonum force-pushed the dt/feat/handle_cancelation branch from 1cfd679 to d583493 Compare December 10, 2024 15:31
Comment on lines +130 to +133
if (taskName === 'start') {
await acknowledgeTaskDone(taskId)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the process is:

ask for start -> slab starts instance, starts watchdog -> action waits for instance -> acknowledge ?

isn't there a risk of slab killing the instance before the action can aknowledge ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also is there a risk of aknowledging before Slab is waiting for an aknwoledge ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't there a risk of slab killing the instance before the action can aknowledge ?

Reasonably, no. The sleeping time before killing the instance is 5 minutes on Slab side, AFTER the spawn is over.

also is there a risk of aknowledging before Slab is waiting for an aknwoledge ?

No this is enforced on Slab side, you cannot acknowledge an InProgress or a Failed task (it's basically a no-op)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it possible for the action to acknowledge an in progress task ?

and if so, can it say "ok I acknowledged, now I do something else" and never acknowledges again, meaning slab could kill the instance ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope it's not possible to acknowledge an in progress task. The implementation imposes the acknowledge call to happen after a Done task has been received.

This is useful in start mode where one can cancel before the
instance is actually ready. This way a best-effort is produced to
clean up any spawned instance instead of it turning into a zombie.
@soonum soonum force-pushed the dt/feat/handle_cancelation branch from 0376aea to dd30ab2 Compare December 11, 2024 15:27
@soonum soonum requested a review from IceTDrinker December 11, 2024 15:29
@soonum soonum merged commit 5a0942f into main Dec 11, 2024
23 checks passed
@soonum soonum deleted the dt/feat/handle_cancelation branch December 11, 2024 16:02
@soonum
Copy link
Contributor Author

soonum commented Dec 13, 2024

🎉 This PR is included in version 1.4.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants