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

Use a trap to kill /opt/go/out when term is sent by concourse #1

Closed
wants to merge 1 commit into from
Closed

Use a trap to kill /opt/go/out when term is sent by concourse #1

wants to merge 1 commit into from

Conversation

jfharden
Copy link

Fixes concourse#70

The TERM signal which is sent by concourse to abort the task (either from the UI, or via cli command) is not being forwarded onto the go process, the assets/out script is terminated, but there is still a running go process, this causes the task not to exit and hang until the lock can be claimed, once it is claimed the task exits with a failure and the lock is deadlocked until intervention.

This PR:

  1. Spawns the go process in the background
  2. Sets up a trap on TERM which will send a TERM to the go process
  3. Waits for the go process

I have tested this and it works with both username/password auth, and with private key auth (the ssh-agents trap is also working and terminating the ssh-agent correctly).

Unlike the screenshots in the mentioned issue you can see this example which terminated correctly when clicking the abort button in concourse

Screenshot 2024-05-28 at 10 39 46

@jfharden
Copy link
Author

I'll re-open this when we're ready to merge it, this will also allow the in-repo tests to happen

@jfharden jfharden closed this May 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot cancel the build while waiting for a lock
1 participant