Repository navigation
🐛 QD-16277 Start podman via systemd socket activation instead of polling for readiness - #1053
Merged
Merged
Conversation
…ing for readiness
…s and keep the step's OOM priority
…d unload checked stale units
Qodana for Go132 new problems were found
@@ Code coverage @@
+ 65% total lines covered
11352 lines analyzed, 7415 lines covered
# Calculated according to the filters of your coverage tool☁️ View the detailed Qodana report Contact Qodana teamContact us at qodana-support@jetbrains.com
|
# Conflicts: # .github/actions/setup-podman/start-podman.sh
Qodana for Go135 new problems were found
@@ Code coverage @@
+ 66% total lines covered
11230 lines analyzed, 7415 lines covered
# Calculated according to the filters of your coverage tool☁️ View the detailed Qodana report Contact Qodana teamContact us at qodana-support@jetbrains.com
|
Jakub Andrzejewski (bonepl)
approved these changes
Oct 6, 2026
Jakub Andrzejewski (bonepl)
left a comment
Contributor
There was a problem hiding this comment.
LGTM
Anna Zhukova (bindreams)
marked this pull request as ready for review
October 6, 2026 14:56
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Vladimir Shtarev (DarkMechanikum)
pushed a commit
that referenced
this pull request
Oct 6, 2026
* 🐛 QD-16178 Pin podman container-engine version (#1041) (cherry picked from commit 6ffe18f) * 🐛 QD-16178 Fix podman readiness wait that could only succeed on the first poll (#1042) (cherry picked from commit 88361c1) * 🐛 QD-16180 Fix podman 6 container networking and pin podman 6.1.2 (#1050) (cherry picked from commit 7a04e72) * 🔧 QD-16287 Stop Renovate aborting on Maven Central 429s (#1054) (cherry picked from commit 0bee897) * 🔧 QD-16181 Pin CI container engines and tools, and let Renovate bump them (#1055) (cherry picked from commit 810ee26) * 🐛 QD-16277 Start podman via systemd socket activation instead of polling for readiness (#1053) (cherry picked from commit b1e5754) --------- Co-authored-by: Evgeny Im <evgenii.im@jetbrains.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.
Fixes QD-16277.
start-podman.shno longer sleep-polls anything it started.podman system servicenow runs as a transient systemd socket + service pair (setup-podman), so every wait is on a real primitive.How it waits now
systemd-run --socket-property=ListenStream=…returns once the socket is bound, owned by the runner user and listening. Clients queue in the backlog until podman (started by the first connection) accepts.curl /_ping.--max-time 120is only the failure bound for podman hanging. The registry pull and DNS probe from 🐛 QD-16180 Fix podman 6 container networking and pin podman 6.1.2 #1050 keep their own bounds, which are on the network.::error::instead of restarting podman.Non-obvious settings
StartLimitBurst=1,StartLimitIntervalSec=infinity: PID 1 owns the socket, so a podman that dies without accepting would be re-activated by the queued connection, and a crash would read as a hang.mktemp -ddirectory, not the journal. The journal ingests stdout asynchronously, so a file is the only log guaranteed complete when the probe fails. It sits in its own directory becausefs.protected_regularrefuses root's open of a user-owned file in sticky/tmp.fail()stops the unit before dumpingsystemctl status, so the dump doesn't race systemd reaping podman.OOMScoreAdjustinherits the step's value, as the backgroundedsudo podmandid.Verification
accept(), fast and slow;accept(), and answering with an HTTP error;DOCKER_HOSTpointing at a dead endpoint or at another engine.podman@6.1.2.podman@latest36017415200: green end to end.