On 11/09/2026 07:26, Collin Funk wrote:
On GNU/Hurd, this test would get stuck in an infinite loop like the following:+ kill -s INFO 16535 + sleep .01 + kill -s INFO 16535 + sleep .01 + kill -s INFO 16535 + sleep .01 [...] The signals being sent that frequently seem to prevent 'dd' from performing writes, since it outputs the following during that time: 0+0 records in 0+0 records out 0 bytes copied, 7161.11 s, 0.0 kB/s 0+0 records in 0+0 records out 0 bytes copied, 7161.88 s, 0.0 kB/s [...] * tests/dd/stats.sh: Use a larger interval between signals on GNU/Hurd. --- tests/dd/stats.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/dd/stats.sh b/tests/dd/stats.sh index db650f80d..da9bea774 100755 --- a/tests/dd/stats.sh +++ b/tests/dd/stats.sh @@ -37,6 +37,16 @@ cleanup_() wait }+# On GNU/Hurd, sending a signal every .01 seconds would lead to an+# infinite loop with zero bytes being written. Doubling the interval +# to .02 seconds works fine. Keep the smaller on other platforms where +# it doesn't cause issues. +if test "$(uname)" = GNU; then + siginfo_interval=.02 +else + siginfo_interval=.01 +fi + for open in '' '1'; do > err || framework_failure_@@ -56,7 +66,7 @@ for open in '' '1'; do# to race setting handler, or blocking on open of fifo. # Many signals also check that short reads are handled. until ! kill -s $SIGINFO $pid 2>/dev/null; do - sleep .01 + sleep $siginfo_interval donewait
That shouldn't cause any issues elsewhere so it's good to push, but we might look at making that test more robust after release. cheers, Padraig
