ci/cfbot: run windows tests under a timeout
Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.
You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:
docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t45447psql -h localhost -U postgresBuilt from patchset v1 (message #1), July 27, 2026 at 03:22 PM.
Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:
git clone --branch t45447_1 https://github.com/hackorum-dev/postgres.gitIn a checkout you already have, add the fork once:
git remote add hackorum https://github.com/hackorum-dev/postgres.gitthen, for this patchset and every later one:
git fetch hackorum t45447_1 && git checkout t45447_1Patchset v1 (message #1) is on t45447_1
Hi,
On windows cfbot currently regularly hangs / times out. Presumably this is due
to the issues discussed in /messages/by-id/CA+hUKG+G5DUNJfdE-qusq5pcj6omYTuWmmFuxCvs=q1jNjkKKA@mail.gmail.com
which lead to reverting [1]commit 75674c7ec1b1607e7013b5cebcb22d9c8b4b2cb6 Author: Tom Lane <tgl@sss.pgh.pa.us> Date: 2022-01-25 12:17:40 -0500 some networking related changes everywhere but
master.
But it's hard to tell - because the entire test task times out, we don't get
to see debugging information.
In earlier versions of the CI script I had tests run under a timeout command,
that killed the entire test run. I found that to be helpful when working on
AIO. But I removed that, in an attempt to simplify things, before
submitting. Turns out it was needed complexity.
The attached test adds a timeout (using git's timeout binary) to all vcregress
invocations. I've not re-added it to the other OSs, but I'm on the fence about
doing so.
The diff is a bit larger than one might think necessary: Yaml doesn't like % -
from the windows command variable syntax - at the start of an unquoted
string...
Separately, we should probably make Cluster.pm::psql() etc always use a
"fallback" timeout (rather than just when the test writer thought it's
necessary). Or perhaps Utils.pm's INIT should set up a timer after which an
individual test is terminated?
Greetings,
Andres Freund
[1]: commit 75674c7ec1b1607e7013b5cebcb22d9c8b4b2cb6 Author: Tom Lane <tgl@sss.pgh.pa.us> Date: 2022-01-25 12:17:40 -0500
commit 75674c7ec1b1607e7013b5cebcb22d9c8b4b2cb6
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-01-25 12:17:40 -0500
Revert "graceful shutdown" changes for Windows, in back branches only.
This reverts commits 6051857fc and ed52c3707, but only in the back
branches. Further testing has shown that while those changes do fix
some things, they also break others; in particular, it looks like
walreceivers fail to detect walsender-initiated connection close
reliably if the walsender shuts down this way. We'll keep trying to
improve matters in HEAD, but it now seems unwise to push these changes
into stable releases.
Discussion: /messages/by-id/CA+hUKG+OeoETZQ=Qw5Ub5h3tmwQhBmDA=nuNO3KG=zWfUypFAw@mail.gmail.com
Hi,
On 2022-02-02 10:31:07 -0800, Andres Freund wrote:
The attached test adds a timeout (using git's timeout binary) to all vcregress
invocations. I've not re-added it to the other OSs, but I'm on the fence about
doing so.
I've pushed this now.
Greetings,
Andres Freund