Repository navigation
Read the whole journal when waiting for startup - #410
Merged
Merged
Conversation
grep -q stops at the first match, journalctl then gets SIGPIPE, and pipefail turned a found startup line into a failure. Production's first automatic deploy started in a minute and was still reported as not starting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first automatic production deploy (run 38403758909) switched prod to 748aee1, which reported
Application startup completeat 13:22:50, a minute after starting. The job still failed with "did not report startup in time".activate_release.shwaited withjournalctl … | grep -q …underset -o pipefail.grep -qexits on the first match,journalctlgets SIGPIPE, and pipefail turns the found line into a failure. Staging's journal was short enough to be written before grep exited, so it passed there. The check now counts matches withgrep -c, which reads the whole journal.Verification
infra/deploy.sh(exit 0, startup reported, health OK).Tested on staging
This changes the deploy scripts, which
deploy-stagingcan't test because it always runsmain's scripts. I deployed it to staging with the branch'sdeploy.shinstead and set thestagingstatus by hand.docs/staging.mdnow describes that path.Notes
Prod is healthy on 748aee1 (NRestarts 0, /healthz 200). Merging this deploys it to staging and prod, which also checks the corrected wait on prod.
🤖 Generated with Claude Code