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

Avoid SIGPIPE (error 141) in auto-cancel Run Step example #73

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

davidjb
Copy link

@davidjb davidjb commented Mar 1, 2024

The example shown at https://support.circleci.com/hc/en-us/articles/360055901372-Auto-Cancel-Re-Run-if-Newer-Commit-Exists is susceptible to SIGPIPE (Bash exit code 141) errors because of the mixture of commands. In short, use of head -n 1 exits before the git show command ends, because git show is still busy outputting the diff of a given commit. This also created a race condition where shorter diffs would not trigger the issue but longer ones would. This is solved with the changes in this PR, by not outputting the patches.

This also cleans up the first "latest commit" command by simplifying it to avoid needing grep. By doing so, it focussing on --heads rather than potentially tags as well and fixes a situation where grep would match multiple branches -- e.g. dev matches another-dev, leading to incorrect tests.

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