Re: Regression tests fail on OpenBSD due to low semmns value
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>
Cc: Peter Eisentraut <peter@eisentraut.org>,
Andrew Dunstan <andrew@dunslane.net>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-12-24T14:00:01Z
Lists: pgsql-hackers
Hello Tom, 16.12.2024 07:23, Tom Lane wrote: > Alexander Lakhin<exclusion@gmail.com> writes: > >> ... >> So GetSafeSnapshot() waits indefinitely for possibleUnsafeConflicts to >> become empty (for other backend to remove itself from the list of possible conflicts >> inside ReleasePredicateLocks()), but it doesn't happen. > This seems like an actual bug? I've reproduced this behavior with two reduced sqls. prepared_xacts.sql: BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; CREATE TABLE pxtest4 (a int); PREPARE TRANSACTION 'regress_sub2'; \c - COMMIT PREPARED 'regress_sub2'; -- the script ends prematurely and doesn't reach COMMIT when \c fails due -- to the "too many clients" error. transactions.sql SELECT pg_sleep(1); CREATE TABLE writetest (a int); BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ ONLY, DEFERRABLE; -- ok SELECT * FROM writetest; -- ok COMMIT; and parallel_schedule: test: transactions prepared_xacts So "transactions" backend just waits for the prepared transaction to finish. 19.12.2024 01:06, Tom Lane wrote: > We'd still want to make the other changes I mentioned for NetBSD's > sake, though. Thank you for fixing that shortcoming! Best regards, Alexander
Commits
-
Try to avoid semaphore-related test failures on NetBSD/OpenBSD.
- a46311ed7214 17.3 landed
- 38da053463be 18.0 landed