Re: Regression tests fail on OpenBSD due to low semmns value - Mailing list pgsql-hackers

From Alexander Lakhin
Subject Re: Regression tests fail on OpenBSD due to low semmns value
Date
Msg-id 79b9cb76-5f7b-4001-b40a-7cb4a2e53192@gmail.com
Whole thread Raw
In response to Re: Regression tests fail on OpenBSD due to low semmns value  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Regression tests fail on OpenBSD due to low semmns value
List 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

pgsql-hackers by date:

Previous
From: "Vitaly Davydov"
Date:
Subject: An improvement of ProcessTwoPhaseBuffer logic
Next
From: Merlin Moncure
Date:
Subject: Re: stored procedures vs pg_stat_statements