diff options
author | Matthew Heon <mheon@redhat.com> | 2022-03-22 14:01:44 -0400 |
---|---|---|
committer | Matthew Heon <mheon@redhat.com> | 2022-03-23 09:33:40 -0400 |
commit | 5b2597d5232627b5560bf628276ec67b35aba4bf (patch) | |
tree | 1bda31be4159f08bdb1a83936c07e8534e172130 /libpod/plugin | |
parent | c840f64e419813f389d88e16294ce916aaf31957 (diff) | |
download | podman-5b2597d5232627b5560bf628276ec67b35aba4bf.tar.gz podman-5b2597d5232627b5560bf628276ec67b35aba4bf.tar.bz2 podman-5b2597d5232627b5560bf628276ec67b35aba4bf.zip |
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>
Diffstat (limited to 'libpod/plugin')
0 files changed, 0 insertions, 0 deletions