spiegel_podman/libpod
Matthew Heon 5b2597d523 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-23 09:33:40 -04:00
..
common fix a number of godot issues 2022-03-22 13:04:35 +01:00
define Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events fix a number of errcheck issues 2022-03-22 13:15:28 +01:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +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 fix a number of errcheck issues 2022-03-22 13:15:28 +01:00
boltdb_state_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
boltdb_state_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go Implement Podman Container Clone 2022-02-20 21:11:14 -05:00
container_api.go fix a number of errcheck issues 2022-03-22 13:15:28 +01:00
container_commit.go container-commit: support --squash to squash layers into one 2022-02-23 17:38:28 +05:30
container_config.go Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
container_copy_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_exec.go Fix a potential race around the exec cleanup process 2022-03-23 09:33:40 -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 Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
container_internal.go Merge pull request #13585 from flouthoc/fix-no-healthcheck 2022-03-22 14:44:26 +01:00
container_internal_linux.go fix a number of errcheck issues 2022-03-22 13:15:28 +01: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 go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_log.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_log_linux.go Add the names flag for pod logs 2022-03-01 00:18:39 +01:00
container_log_unsupported.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +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 go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_top_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +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-04 21:15:03 +05:30
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 move k8s deps into podman 2022-03-15 14:46:29 +01:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux.go linter: enable makezero 2022-03-22 13:04:35 +01: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 go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
oci.go bump go module to version 4 2022-01-18 12:47:07 +01:00
oci_attach_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_exec_linux.go fix: Multiplication of durations 2022-02-08 09:15:45 +08:00
oci_conmon_linux.go linter: enable nilerr 2022-03-22 13:04:35 +01: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 Add support for --chrootdirs 2022-03-14 10:31:58 +02: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 go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
reset.go system prune: remove all networks 2022-02-03 13:14:07 +01:00
runtime.go Exit with 0 when receiving SIGTERM 2022-03-15 14:45:11 -07:00
runtime_cstorage.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_ctr.go Merge pull request #13232 from rhatdan/volumes 2022-02-23 03:26:59 -05:00
runtime_img.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_migrate.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
runtime_pod.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_pod_linux.go Merge pull request #13398 from giuseppe/fix-warning-pod-create-rm 2022-03-22 15:56:45 +01: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-22 11:05:26 -05:00
runtime_volume_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01: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 go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
storage.go bump go module to version 4 2022-01-18 12:47:07 +01:00
util.go Show version of the deb package in info output 2022-02-24 20:24:31 +01:00
util_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +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 Add podman volume mount support 2022-02-28 14:26:22 -05: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 Add podman volume mount support 2022-02-28 14:26:22 -05:00