From ea1c13de8f035cd7679a9eaebe10df0fa930b739 Mon Sep 17 00:00:00 2001 From: "Joshua D. Drake" Date: Mon, 26 Oct 2026 17:03:22 +0000 Subject: [PATCH 1/2] ci: the nightly cluster-test job gets 40 minutes, not 20 (#1757) The nightly deep gate has been red since 2026-10-23 (#1757), mostly on `pytest (cluster tests, PG N)`. Those jobs are cancelled, not failed: on 2026-10-26 (run 40322948037) PG 16 finished in 18m52s, and PG 15, 17 and 18 were cancelled at the 20-minute limit. PG 15's accounting line had already printed "7305 pass + 0 fail + 41 unrun". #1740 raised ci.yml's job of the same name to 40 minutes; nightly.yml kept 20. Guards: 839 passed. Verified by dispatching nightly.yml on this branch. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/nightly.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1c3183a7b..f71370592 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -728,7 +728,11 @@ jobs: pytest-cluster: name: pytest (cluster tests, PG ${{ matrix.pg }}) runs-on: ubuntu-latest - timeout-minutes: 20 + # 40, not 20, as in ci.yml's job of the same name (#1740). The run is serial and + # grows with every ported twin: on 2026-10-26 PG 16 finished its tests in 18m52s, + # and PG 15, 17 and 18 were cancelled at the 20-minute limit, PG 15 after its + # accounting line had printed 7305 pass + 0 fail (#1757). + timeout-minutes: 40 strategy: fail-fast: false matrix: From ab925a327a06d62f3a65c80437b64772a3124d56 Mon Sep 17 00:00:00 2001 From: "Joshua D. Drake" Date: Mon, 26 Oct 2026 17:20:08 +0000 Subject: [PATCH 2/2] ci: the nightly cluster-test job installs from the build job's apt cache ci.yml's cluster-test job restores the build job's apt archive read-only (#1754); nightly.yml's job of the same name did not. Its first run on this branch (40365017512) lost PG 16 and PG 17 at the install step: all three 200-second attempts stalled. The job now restores the newest archive under the build job's prefix and installs with it as apt's archive cache, as ci.yml does. It derives no key and never saves, and a miss falls back to the full download. Guards: 839 passed. Verified by dispatching nightly.yml on this branch again. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/nightly.yml | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f71370592..212b66fd3 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -756,7 +756,7 @@ jobs: # the names its tests decline UNAVAILABLE_ENDPOINT and the run ends 67. run: echo "127.0.0.1 s3.local pgc-bucket.s3.local" | sudo tee -a /etc/hosts - - name: Add the PGDG repository and install PostgreSQL ${{ matrix.pg }} with its headers + - name: Add the PGDG repository and refresh the package lists run: | set -euo pipefail sudo install -d /usr/share/postgresql-common/pgdg @@ -771,12 +771,29 @@ jobs: https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \ | sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null .github/scripts/apt-retry.sh 100 3 update - .github/scripts/apt-retry.sh 200 3 install -y --no-install-recommends \ + + # SEEDED FROM ci.yml's BUILD JOB CACHE, READ-ONLY, as ci.yml's job of the same + # name is (#1754). Without it this job downloads ~110 MB per run, most of it the + # LLVM toolchain postgresql-server-dev-N depends on, and that download stalls: on + # 2026-10-26 PG 16 and 17 failed all three 200-second attempts (#1758's run + # 40365017512). It derives no key and never saves; apt resolves every version + # and downloads what the archive lacks, so a miss falls back to the full download. + - name: Restore the build job's PostgreSQL ${{ matrix.pg }} packages, if any + uses: actions/cache/restore@v4 + with: + path: ~/apt-archives + key: apt-pgdev-codecs-pg${{ matrix.pg }}-${{ runner.os }}-${{ runner.arch }}- + restore-keys: | + apt-pgdev-codecs-pg${{ matrix.pg }}-${{ runner.os }}-${{ runner.arch }}- + + - name: Install PostgreSQL ${{ matrix.pg }} with its headers + run: | + set -euo pipefail + mkdir -p "$HOME/apt-archives/partial" + .github/scripts/apt-retry.sh 200 3 \ + -o Dir::Cache::archives="$HOME/apt-archives" install -y --no-install-recommends \ postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }} postgresql-${{ matrix.pg }}-partman postgresql-${{ matrix.pg }}-hll postgresql-${{ matrix.pg }}-tdigest \ liblz4-dev libzstd-dev zlib1g-dev - # NOT cached, deliberately. The suites job caches because it runs a matrix for - # an hour; a second copy of that cache-key derivation is a thing that goes - # stale silently, and this job is minutes long. # ASSERTED, not assumed. A missing pg_config would otherwise surface as a # confusing failure inside conftest's build rather than here.