commit 7828169ef0ad9f2620ae2bfb9aeeb2d8535a6d9e
tree f7815ecad59d4724887d6072c061ab24937dc8d2
parent 2130323875a8b0382ae6c67c8d8dcbad25c3fcca
author Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-10 11:19:38 -0300
committer Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-10 11:19:38 -0300

    round-robin.sh (probe_glibc_test_env): Record container capabilities
    
    The container the glibc testsuite runs in differs between the
    postcommit and precommit node pools, and nothing says so.
    
    On tcwg-g3-01 (tcwg-postcommit) every test that calls
    support_become_root() fails with
    
      error: xwrite.c:32: write of N bytes failed after 0: Operation not permitted
    
    -- the write to /proc/self/uid_map -- and every test-container test
    fails with "could not create a private mount namespace".  On
    tcwg-g3-08 (tcwg-precommit) they pass.  Both jobs pass the same
    --cap-add=SYS_ADMIN and --security-opt apparmor=unconfined, so the
    difference is in the host, not in ci-job-configs.
    
    That accounts for 100 of the 105 failures in the aarch64 baseline of
    tcwg_glibc_check and 115 on arm: all of resolv/, most of nss/, and
    every test-container test.  They land in the baseline xfail list,
    where they hide any real regression in those tests.
    
    Probe for both capabilities before the glibc check and record the
    result in artifacts, so the next person to look at a 100-failure
    baseline can see why in one file.  This only reports; it does not
    change the build result.


:100644 100644 8fd33d87fab51fd22b73124a4f2e283b9c7f172b ef9ea4786eb4427bdb61feca520b07fd0b5c11de M	round-robin.sh
commit 2130323875a8b0382ae6c67c8d8dcbad25c3fcca
tree 91c47dc75cf62609c2686418979a13f7f0840150
parent 56c86ab1c5179adf897872e3187ea72ca904fafd
author Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-10 11:19:38 -0300
committer Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-10 11:19:38 -0300

    round-robin.sh (check_regression): Don't call an XPASS a precommit regression
    
    An XPASS means the baseline and this build disagree about whether a
    test is expected to fail -- or whether it is built at all.  When we
    track a branch that is worth reporting: the xfail entry has gone
    stale.  In precommit the baseline comes from a different build, and
    since the postcommit and precommit pools were split it also comes from
    a different machine, so an XPASS describes the two environments rather
    than the patch under test.
    
    Builds 10630 and 10631 of tcwg_glibc_check--master-aarch64-precommit
    blamed a RISC-V patch for "XPASS: elf/tst-protected1a" and
    "XPASS: elf/tst-protected1b" on aarch64.  Those tests do not appear in
    the baseline results at all, and their flaky entry had expired the day
    before.
    
    Pass --ignore_xpass to validate_failures.py in precommit mode.
    round-robin-notify.sh evaluates the same condition when it generates
    regressions.sum, so the report and this verdict cannot disagree; the
    two must be deployed together.  Bisects are excluded: they have a
    meaningful baseline and want to see every difference.
    
    Requires the matching gcc-compare-results change adding --ignore_xpass.


:100644 100644 fbf46c77ebb7b03e9929ae69ced61e7ab61f9583 8fd33d87fab51fd22b73124a4f2e283b9c7f172b M	round-robin.sh
commit 56c86ab1c5179adf897872e3187ea72ca904fafd
tree f6299675e281a306bdb1bac1fd9f32cda8a9a558
parent c8070b9ee8e4298de94cebf724db927465a20a62
author Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-09 13:52:07 -0300
committer Adhemerval Zanella <adhemerval.zanella@linaro.org> 2026-09-09 13:52:07 -0300

    round-robin.sh (build_abe): Scale glibc test timeouts
    
    glibc's test driver kills a test after TIMEOUT seconds, 20 by default
    (DEFAULT_TIMEOUT in support/test-driver.h), scaled by $TIMEOUTFACTOR.
    We run "make check" with -j $cpus, so on a 64-core machine the
    testsuite saturates every CPU and tests whose runtime depends on
    scheduling latency time out.
    
    posix/tst-affinity, tst-affinity-pid and tst-affinity-static are the
    usual victims: they pin the process to each CPU in turn and wait to be
    migrated, ~450 times over the various CPU set sizes.  They were
    reported as regressions in 3 of the 9 failing
    tcwg_glibc_check--master-aarch64-precommit builds between 10563 and
    10632, every time to a contributor whose patch had nothing to do with
    affinity.
    
    ABE already raises $TIMEOUTFACTOR by one on each re-run, so the base
    it scales is what we can usefully set from here.  Its ramp alone does
    not help: a test needing more than twice the default fails on try #0
    and try #1 alike, is classified as a stable fail rather than a flaky
    one, and is never re-run again.  In build 10574 the affinity tests
    timed out at both 20s and 40s and were reported as regressions.
    
    Set TIMEOUTFACTOR_BASE=10 for the glibc check, giving 200s on the
    first try.  It costs nothing for tests that pass; a test that really
    hangs now takes 200s rather than 20s to be killed.
    
    Requires the matching abe change adding $TIMEOUTFACTOR_BASE.


:100644 100644 7bcab54a42d55dc8e484c888148546794faabc27 fbf46c77ebb7b03e9929ae69ced61e7ab61f9583 M	round-robin.sh
