Subject: Re: bug#75613: tail-c test fails on CentOS 6

From: Pádraig Brady <[email-masked]>
Date: Thu, 16 Jan 2025 21:11:20 +0000

On 16/01/2025 20:19, Paul Eggert wrote:
> On 2025-01-16 11:50, Bruno Haible via GNU coreutils Bug Reports wrote:
>>     $ src/timeout --verbose 1 src/tail -c 4096 /dev/urandom
>>     timeout: sending signal TERM to command 'src/tail'
>>     $ echo $?
>>     124
> 
> Wikipedia[1] says that CentOS versions through CentOS 8 have reached
> end-of-life and are no longer supported, so I doubt whether it's worth
> our time to debug this merely for them. The oldest CentOSish version
> still supported is CentOS Stream 9[2].
> 
> [1]: https://en.wikipedia.org/wiki/CentOS#End-of-support_schedule
> [2]: https://en.wikipedia.org/wiki/CentOS_Stream#Release_history

Right. Behavior of `tail -c /dev/pseudo` is quite system dependent really,
so that test is quite brittle as is. We already allow for Solaris
specific behavior in the test, so I propose we at least adjust the test
to skip failures on older kernels, as in the attached.

cheers,
Pádraig

From 700690ebc35e2afdee06100d83427c45b6e87a4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email-masked]>
Date: Thu, 16 Jan 2025 21:05:34 +0000
Subject: [PATCH] tests: tail-c.sh: avoid failure on Linux kernels <= 2

tests/tail/tail-c.sh: Exclude older kernels from timeout failure.
---
 tests/tail/tail-c.sh | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/tail/tail-c.sh b/tests/tail/tail-c.sh
index 75392df23..23519918b 100755
--- a/tests/tail/tail-c.sh
+++ b/tests/tail/tail-c.sh
@@ -48,7 +48,15 @@ if test -r /dev/urandom; then
       0) ;;
       # Solaris 11 allows negative seek but then gives EINVAL on read
       1) grep 'Invalid argument' err || fail=1;;
-      *) fail=1;;
+      *)
+        case $host_triplet in
+          *linux-gnu*)
+            case "$(uname -r)" in
+              [12].*) ;;  # Older Linux versions timeout
+              *) fail=1 ;;
+            esac ;;
+          *) fail=1 ;;
+        esac ;;
   esac
 fi
 
-- 
2.47.1