mirror of
https://github.com/containers/podman.git
synced 2025-12-05 04:40:47 +08:00
Merge pull request #20394 from giuseppe/cleanup-exec-session-on-errors
exec: do not leak session IDs on errors
This commit is contained in:
@@ -166,4 +166,17 @@ load helpers
|
||||
run_podman rm -f -t0 $cid
|
||||
}
|
||||
|
||||
@test "podman exec - does not leak session IDs on invalid command" {
|
||||
run_podman run -d $IMAGE top
|
||||
cid="$output"
|
||||
|
||||
for i in {1..3}; do
|
||||
run_podman 127 exec $cid blahblah
|
||||
run_podman 125 exec -d $cid blahblah
|
||||
done
|
||||
|
||||
run_podman inspect --format "{{len .ExecIDs}}" $cid
|
||||
assert "$output" = "0" ".ExecIDs must be empty"
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
||||
@@ -339,11 +339,18 @@ function run_podman() {
|
||||
# Remember command args, for possible use in later diagnostic messages
|
||||
MOST_RECENT_PODMAN_COMMAND="podman $*"
|
||||
|
||||
# BATS treats 127 as a special case, so we need to silence it when 127 is the
|
||||
# expected rc: https://bats-core.readthedocs.io/en/stable/warnings/BW01.html
|
||||
silence127=""
|
||||
if [ $expected_rc -eq 127 ]; then
|
||||
silence127="-127"
|
||||
fi
|
||||
|
||||
# stdout is only emitted upon error; this printf is to help in debugging
|
||||
printf "\n%s %s %s %s\n" "$(timestamp)" "$_LOG_PROMPT" "$PODMAN" "$*"
|
||||
# BATS hangs if a subprocess remains and keeps FD 3 open; this happens
|
||||
# if podman crashes unexpectedly without cleaning up subprocesses.
|
||||
run timeout --foreground -v --kill=10 $PODMAN_TIMEOUT $PODMAN $_PODMAN_TEST_OPTS "$@" 3>/dev/null
|
||||
run $silence127 timeout --foreground -v --kill=10 $PODMAN_TIMEOUT $PODMAN $_PODMAN_TEST_OPTS "$@" 3>/dev/null
|
||||
# without "quotes", multiple lines are glommed together into one
|
||||
if [ -n "$output" ]; then
|
||||
echo "$(timestamp) $output"
|
||||
|
||||
Reference in New Issue
Block a user