spiegel_podman/libpod
Matthew Heon 82c01341f7 Fix a potential race around the exec cleanup process
Every exec session run attached will, on exit, do two things: it
will signal the associated `podman exec` that it is finished (to
allow Podman to collect the exit code and exit), and spawn a
cleanup process to clean up the exec session (in case the `podman
exec` process died, we still need to clean up). If an exec
session is created that exits almost instantly, but generates a
large amount of output (e.g. prints thousands of lines), the
cleanup process can potentially execute before `podman exec` has
a chance to read the exit code, resulting in errors. Handle this
by detecting if the cleanup process has already removed the exec
session before handling the error from reading the exec exit
code.

[NO NEW TESTS NEEDED] I have no idea how to test this in CI.

Fixes #13227

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-03-30 15:36:05 -04:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define bump go module to version 4 2022-01-18 12:47:07 +01:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events bump go module to version 4 2022-01-18 12:47:07 +01:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode Add podman static build 2020-05-11 13:11:07 +02:00
lock bump go module to version 4 2022-01-18 12:47:07 +01:00
logs bump go module to version 4 2022-01-18 12:47:07 +01:00
plugin bump go module to version 4 2022-01-18 12:47:07 +01:00
shutdown Fix CI flake on time of shutdown for API service 2021-10-12 09:53:19 -07:00
boltdb_state.go bump go module to version 4 2022-01-18 12:47:07 +01:00
boltdb_state_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
boltdb_state_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_api.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_commit.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_config.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_copy_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_exec.go Fix a potential race around the exec cleanup process 2022-03-30 15:36:05 -04:00
container_graph.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go Don't log errors on removing volumes inuse, if container --volumes-from 2022-02-23 14:27:52 -05:00
container_internal.go healthcheck: stop showing wrong status when --no-healthcheck is set 2022-03-30 15:36:05 -04:00
container_internal_linux.go container: workdir resolution must consider symlink if explicitly configured 2022-03-30 13:30:47 -04:00
container_internal_linux_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_internal_test.go Refactor container config 2020-07-23 10:18:14 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_log_linux.go Fix: Do not print error when parsing journald log fails 2022-02-10 13:55:24 -05:00
container_log_unsupported.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_path_resolution.go volumes: be more tolerant and fix infinite loop 2021-10-28 16:37:33 +02:00
container_stat_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_top_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_validate.go bump go module to version 4 2022-01-18 12:47:07 +01:00
diff.go bump go module to version 4 2022-01-18 12:47:07 +01:00
events.go bump go module to version 4 2022-01-18 12:47:07 +01:00
healthcheck.go healthcheck, libpod: Read healthcheck event output from os pipe 2022-02-10 13:56:22 -05:00
healthcheck_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
info.go bump go module to version 4 2022-01-18 12:47:07 +01:00
kube.go bump go module to version 4 2022-01-18 12:47:07 +01:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
networking_linux_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
networking_machine.go use libnetwork from c/common 2022-01-12 17:07:30 +01:00
networking_slirp4netns.go slirp: fix setup on ipv6 disabled systems 2022-03-30 14:01:52 -04:00
oci.go bump go module to version 4 2022-01-18 12:47:07 +01:00
oci_attach_linux.go libpod: fix connection leak 2022-01-24 16:05:42 +01:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_exec_linux.go do not set the inheritable capabilities 2022-03-30 15:32:18 +02:00
oci_conmon_linux.go podman machine: remove hostip from port 2022-03-30 14:11:14 -04:00
oci_missing.go bump go module to version 4 2022-01-18 12:47:07 +01:00
oci_util.go bump go module to version 4 2022-01-18 12:47:07 +01:00
options.go Podman pod create --share-parent vs --share=cgroup 2022-02-10 13:49:46 -05:00
pod.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_api.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
reset.go system prune: remove all networks 2022-02-03 15:01:29 -05:00
runtime.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_cstorage.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_ctr.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_img.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_migrate.go bump go module to version 4 2022-01-18 12:47:07 +01:00
runtime_pod.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_pod_linux.go libpod: drop warning if cgroup doesn't exist 2022-03-30 15:36:05 -04:00
runtime_renumber.go bump go module to version 4 2022-01-18 12:47:07 +01:00
runtime_volume.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
runtime_volume_linux.go Remove the runtime lock 2022-02-23 14:29:41 -05:00
state.go use libnetwork from c/common 2022-01-12 17:07:30 +01:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go bump go module to version 4 2022-01-18 12:47:07 +01:00
storage.go bump go module to version 4 2022-01-18 12:47:07 +01:00
util.go Show package version when running on alpine 2022-01-19 18:55:03 +01:00
util_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume_inspect.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume_internal_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00