spiegel_podman/pkg
Jan Rodák ecf493dea0
Fix Docker compat /wait hanging on fast-exiting containers
The Docker client (docker run) sends /wait then /start, but it only
sends /start after receiving the 200 OK response from /wait. Previously,
the event subscription for the "died" event was set up after the 200 was
sent, creating a window where a fast-exiting container (e.g. hello-world)
could emit its "died" event before the subscription was ready, causing
the client to hang forever.

Fix this by subscribing to "died" events before flushing the 200 status
code. This guarantees the event listener is ready before the client can
send /start, eliminating the race entirely.

Fixes: https://github.com/containers/podman/issues/28514

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-04-20 15:01:42 +02:00
..
annotations enable gofumpt formatter 2025-11-11 12:32:46 +01:00
api Fix Docker compat /wait hanging on fast-exiting containers 2026-04-20 15:01:42 +02:00
auth api/compat: switch to moby/moby 2026-03-09 11:09:23 +01:00
autoupdate Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
bindings Implement --save-stages/--stage-labels for build 2026-04-17 10:00:32 -04:00
channel bump golangci-lint to v1.50.1 2022-12-15 13:39:56 +01:00
checkpoint use chrootarchive over plain archive package 2026-04-08 19:58:07 +02:00
copy enable gofumpt formatter 2025-11-11 12:32:46 +01:00
criu lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
ctime update golangci/golangci-lint to v1.63.4 2025-01-07 15:48:53 +01:00
domain Merge pull request #28275 from mheon/ordered_networks 2026-04-20 12:33:13 +02:00
emulation pkg/emulation: remove slice copying 2026-02-11 11:41:10 -08:00
env run modernize -fix ./... 2025-09-10 16:17:04 +02:00
errorhandling pkg/errorhandling: remove deadcode 2025-06-26 19:37:14 +02:00
farm build: handle --iidfile-raw and --metadata-file flags 2026-02-03 09:18:29 +05:30
fileserver Bump Go version to v6 2025-10-23 11:00:15 -04:00
inspect Bump Go version to v6 2025-10-23 11:00:15 -04:00
k8s.io Fix deprecation notice to make gocritic happy. 2025-11-12 15:35:29 -05:00
logiface run modernize -fix ./... 2025-09-10 16:17:04 +02:00
lookup Cease using deprecated runc userlookup 2024-02-02 11:02:43 -05:00
machine Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
namespaces Remove slirp4netns setup functions (preserve RLK) 2026-04-13 09:04:41 -04:00
parallel Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
pidhandle add missing O_CLOEXEC to open calls 2026-04-02 15:06:37 +02:00
ps Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
rctl use strings.SplitSeq where possible 2025-09-10 16:17:04 +02:00
rootless rootless: detect and remove stale pause.pid with recycled PIDs 2026-03-19 14:46:29 +01:00
seccomp pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
selinux Fix SELinux functions names to not be repetitive 2020-04-23 15:57:34 -04:00
signal enable gofumpt formatter 2025-11-11 12:32:46 +01:00
specgen Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
specgenutil Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
specgenutilexternal enable gofumpt formatter 2025-11-11 12:32:46 +01:00
syncmap Add syncmap package and use it for graph stop/remove 2025-02-17 14:32:34 -05:00
systemd Quadlet - Support empty source for Mount key 2026-04-13 17:28:33 -04:00
terminal Fix Lint on Windows and enable the job 2024-02-20 08:06:18 -05:00
trust run modernize -fix ./... 2026-03-12 17:22:01 +01:00
util Fix .containerignore patterns with leading/trailing slashes 2026-04-01 20:19:37 +02:00