Skip to content

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

Open
davidjb wants to merge 1 commit intoCircleCI-Public:mainfrom
davidjb:patch-1
Open

Avoid SIGPIPE (error 141) in auto-cancel Run Step example#73
davidjb wants to merge 1 commit intoCircleCI-Public:mainfrom
davidjb:patch-1

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

Development

Successfully merging this pull request may close these issues.

1 participant