Re: BUG #18118: bug report for COMMIT AND CHAIN feature

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: evan.lx@alibaba-inc.com, pgsql-bugs@lists.postgresql.org
Date: 2023-09-21T06:41:20Z
Lists: pgsql-bugs
On Wed, 2023-09-20 at 09:31 +0000, PG Bug reporting form wrote:
> PostgreSQL version: 14.9
> Operating system:   centos7
> Description:        
> 
> COMMIT(280a408b48d5ee42969f981bceb9e9426c3a344c) provides a way to support
> chained commits. During recent development, I found that it left a flaw.
> 
> The defect can be reproduced as follows:
> 
> START TRANSACTION ISOLATION LEVEL SERIALIZABLE; COMMIT;
> START TRANSACTION ISOLATION LEVEL REPEATABLE READ\; savepoint s\; COMMIT AND
> CHAIN;
> SHOW transaction_isolation; -- transaction is active at this point
> COMMIT;
> 
> will get:
> postgres=*# SHOW transaction_isolation; -- transaction is active at this
> point
>   transaction_isolation
> -----------------------
>   serializable
> (1 row)

I tried to reproduce that and failed, both with v14 and v16.

For me, "transaction_isolation" is "repeatable read".

Yours,
Laurenz Albe



Commits

  1. Fix COMMIT/ROLLBACK AND CHAIN in the presence of subtransactions.

  2. Don't use static storage for SaveTransactionCharacteristics().

  3. Transaction chaining