summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2021-09-07 11:18:13 +0200
committerValentin Rothberg <rothberg@redhat.com>2021-09-07 12:46:56 +0200
commit1eaa449590515a0bb6207316fe5fba734ebde335 (patch)
tree2cac9a937df56a4d8384ed889bae7d34e1beacef /test
parente095667ac8c2ccaf06dea6d4c61f51d93b736968 (diff)
downloadpodman-1eaa449590515a0bb6207316fe5fba734ebde335.tar.gz
podman-1eaa449590515a0bb6207316fe5fba734ebde335.tar.bz2
podman-1eaa449590515a0bb6207316fe5fba734ebde335.zip
logs -f: file: fix dead lock
Fix a dead lock in the file log driver where one goroutine would wait on the tail to hit EOF but reading is blocked for the function to return. Fixes: 11461 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/system/035-logs.bats27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/system/035-logs.bats b/test/system/035-logs.bats
index 32282c8e1..a04d2ac74 100644
--- a/test/system/035-logs.bats
+++ b/test/system/035-logs.bats
@@ -174,4 +174,31 @@ $s_after"
_log_test_until journald
}
+function _log_test_follow() {
+ local driver=$1
+ cname=$(random_string)
+ contentA=$(random_string)
+ contentB=$(random_string)
+ contentC=$(random_string)
+
+ # Note: it seems we need at least three log lines to hit #11461.
+ run_podman run --log-driver=$driver --name $cname $IMAGE sh -c "echo $contentA; echo $contentB; echo $contentC"
+ run_podman logs -f $cname
+ is "$output" "$contentA
+$contentB
+$contentC" "logs -f on exitted container works"
+
+ run_podman rm -f $cname
+}
+
+@test "podman logs - --follow k8s-file" {
+ _log_test_follow k8s-file
+}
+
+@test "podman logs - --follow journald" {
+ # We can't use journald on RHEL as rootless: rhbz#1895105
+ skip_if_journald_unavailable
+
+ _log_test_follow journald
+}
# vim: filetype=sh