From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: evan.lx@alibaba-inc.com
Subject: BUG #18118: bug report for COMMIT AND CHAIN feature
Date: Wed, 20 Sep 2023 09:31:41 +0000
Message-ID: <18118-4b72fcbb903aace6@postgresql.org> (raw)
The following bug has been logged on the website:
Bug reference: 18118
Logged by: Liu Xiang
Email address: evan.lx@alibaba-inc.com
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)
The reason for this bug is that in the case of
CommitTransactionCommand->TBLOCK_SUBCOMMIT, if there is a sub-transaction,
only RestoreTransactionCharacteristics will be performed instead of
SaveTransactionCharacteristics; this results in a global variable
save_XactIsoLevel remaining from the previous transaction being restored in
the transaction.
Thank you to the community for your continued help
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, evan.lx@alibaba-inc.com
Subject: Re: BUG #18118: bug report for COMMIT AND CHAIN feature
In-Reply-To: <18118-4b72fcbb903aace6@postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox