Skip to content

Commit

Permalink
Merge pull request #24496 from edsantiago/sigint-flake
Browse files Browse the repository at this point in the history
kube SIGINT system test: fix race in timeout handling
  • Loading branch information
openshift-merge-bot[bot] authored Nov 7, 2024
2 parents e3770f5 + fbbfd07 commit b109a2b
Showing 1 changed file with 24 additions and 5 deletions.
29 changes: 24 additions & 5 deletions test/system/700-play.bats
Original file line number Diff line number Diff line change
Expand Up @@ -660,25 +660,44 @@ spec:
image: $IMAGE
command:
- top
- -b
" > $fname

# force a timeout to happen so that the kube play command is killed
# and expect the timeout code 124 to happen so that we can clean up
# Run in background, then wait for pod to start running.
# This guarantees that when we send the signal (below) we do so
# on a running container; signaling during initialization
# results in undefined behavior.
logfile=$PODMAN_TMPDIR/kube-play.log
$PODMAN kube play --wait $fname &> $logfile &
local kidpid=$!

for try in {1..10}; do
run_podman '?' container inspect --format '{{.State.Running}}' "$podname-$ctrname"
if [[ $status -eq 0 ]] && [[ "$output" = "true" ]]; then
break
fi
sleep 1
done
wait_for_output "Mem:" "$podname-$ctrname"

# Send SIGINT to container, and see how long it takes to exit.
local t0=$SECONDS
PODMAN_TIMEOUT=2 run_podman 124 kube play --wait $fname
kill -2 $kidpid
wait $kidpid
local t1=$SECONDS
local delta_t=$((t1 - t0))

# Expectation (in seconds) of when we should time out. When running
# parallel, allow 4 more seconds due to system load
# parallel, allow longer time due to system load
local expect=4
if [[ -n "$PARALLEL_JOBSLOT" ]]; then
expect=$((expect + 4))
fi
assert $delta_t -le $expect \
"podman kube play did not get killed within $expect seconds"
# Make sure we actually got SIGTERM and podman printed its message.
assert "$output" =~ "Cleaning up containers, pods, and volumes" "kube play printed sigterm message"
assert "$(< $logfile)" =~ "Cleaning up containers, pods, and volumes" \
"kube play printed sigterm message"

# there should be no containers running or created
run_podman ps -a --noheading
Expand Down

1 comment on commit b109a2b

@packit-as-a-service
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

podman-next COPR build failed. @containers/packit-build please check.

Please sign in to comment.