[Dropping bug-gettext from CC.] Natanael Copa wrote: > The test-pthread-rwlock fails on a riscv64 Alpine Linux system with 64 > cpu cores. The test passes on x86_64 and aarch64. > > ... > ============================================================================ > Testsuite summary for gettext-tools 0.24.1 > ============================================================================ > # TOTAL: 463 > # PASS: 389 > # SKIP: 73 > # XFAIL: 0 > # FAIL: 1 > # XPASS: 0 > # ERROR: 0 > ============================================================================ > See gnulib-tests/test-suite.log for debugging. > Some test(s) failed. Please report this to bug-gett...@gnu.org, > together with the test-suite.log file (gzipped) and your system > information. Thanks. > ============================================================================ > ... > ncopa-edge-riscv64:~/aports/main/gettext/src/gettext-0.24.1/gettext-tools$ > cat gnulib-tests/test-suite.log > ======================================================= > gettext-tools 0.24.1: gnulib-tests/test-suite.log > ======================================================= > > # TOTAL: 463 > # PASS: 389 > # SKIP: 73 > # XFAIL: 0 > # FAIL: 1 > # XPASS: 0 > # ERROR: 0 > > System information (uname -a): Linux 6.1.80-0-sophgo #1-Alpine SMP PREEMPT > Mon, 26 Aug 2024 10:06:58 +0000 riscv64 > Distribution information (/etc/os-release): > NAME="Alpine Linux" > ID=alpine > VERSION_ID=3.22.0_alpha20250108 > PRETTY_NAME="Alpine Linux edge" > HOME_URL="https://alpinelinux.org/" > BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" > > .. contents:: :depth: 2 > > FAIL: test-pthread-rwlock > ========================= > > Starting test_rwlock ...Alarm clock > FAIL test-pthread-rwlock (exit status: 142) > > ncopa-edge-riscv64:~/aports/main/gettext/src/gettext-0.24.1/gettext-tools$ > grep RWLOCK config.h > #define GNULIB_TEST_PTHREAD_RWLOCK 1 > #define HAVE_PTHREAD_RWLOCK 1 > /* #undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER */ > /* #undef PTHREAD_RWLOCK_BAD_WAITQUEUE */ > /* #undef PTHREAD_RWLOCK_LACKS_TIMEOUT */ > /* #undef PTHREAD_RWLOCK_UNIMPLEMENTED */ > > ncopa-edge-riscv64:~/aports/main/gettext/src/gettext-0.24.1/gettext-tools$ > lscpu > Architecture: riscv64 > Byte Order: Little Endian > CPU(s): 64 > On-line CPU(s) list: 0-63
Thanks for the report. I can think of two possible explanations for the test failure: a) riscv64 CPUs are significantly slower than x86_64 or arm64 CPUs. (The timeout set in test-pthread-rwlock.c is currently independent of the CPU architecture.) b) The test is known to be sensitive to the kernel's scheduling policy. [1] Since in Linux, the scheduling policy can be customized [2][3], the question arises whether in Alpine Linux, the default scheduling policy is a fair one. So, you could try to install a different scheduler by default and repeat the test. Bruno [1] https://lists.gnu.org/r/bug-gnulib/2017-01/msg00010.html [2] https://man7.org/linux/man-pages/man7/sched.7.html [3] https://mostlynerdless.de/blog/2024/12/03/hello-ebpf-control-task-scheduling-with-a-custom-scheduler-written-in-java-16/