concourse / pool-resource

atomically manages the state of the world (e.g. external environments)
Apache License 2.0
57 stars 36 forks source link

Support Freeing Locks held beyond some threshhold #39

Open vcase opened 6 years ago

vcase commented 6 years ago

We have forked this resource to support a "max_minutes" attribute used to (unceremoniously) move claimed locks back to unclaimed if it is held for longer than this threshold. Perhaps this would be a desirable feature in the standard resource. We perform this clean-up as follows

1- Perform cleanup from "check" since the ATC runs only a single instance of this at a time 2- Check the timestamp of the last commit that touched this lock 3- If the max_minutes threshold is exceeded, unclaim the lock 3b- If the "unclaim" operation fails due to a (very possible) conflict, do not retry until the next check (to keep check running relatively quickly)

marco-m commented 6 years ago

For people with this need (detect and release stale locks after a timeout), you might want to have a look at our Pool Boy https://github.com/Pix4D/concourse-pool-boy, which is meant to run as a separate pipeline.

lxiaopei commented 4 years ago

Seem https://github.com/Pix4D/concourse-pool-boy git repo is no longer there, is it still available?I need to regularly detect stale locks and release them. Thanks.

marco-m commented 4 years ago

hello @lxiaopei, I think we made that repo private by mistake. I am checking it. Feel free to ping in a few days if I don't answer.

marco-m commented 4 years ago

The repo https://github.com/Pix4D/concourse-pool-boy is again public.