Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTg5N-000gV2-1h for pgsql-bugs@arkaria.postgresql.org; Sun, 31 May 2026 13:20:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wTg5L-007dJ8-30 for pgsql-bugs@arkaria.postgresql.org; Sun, 31 May 2026 13:20:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTg5L-007dIz-1k for pgsql-bugs@lists.postgresql.org; Sun, 31 May 2026 13:20:12 +0000 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wTg5J-00000000TPN-0axz for pgsql-bugs@lists.postgresql.org; Sun, 31 May 2026 13:20:11 +0000 Received: from mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:65a0:0:640:e1de:0]) by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id 670E78074E; Sun, 31 May 2026 16:20:07 +0300 (MSK) Received: from smtpclient.apple (unknown [2a02:6bf:8080:541::1:3c]) by mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (smtpcorp) with ESMTPSA id 6KdD0A1XEqM0-EtGDUVPN; Sun, 31 May 2026 16:20:07 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1780233607; bh=dexv+A2IX4jAhZpe0NqwUGoeFyiAFGAdOL5MkWyS5Rk=; h=Message-Id:To:Date:References:Cc:In-Reply-To:From:Subject; b=eOc8AJ7yccx6ZFcEQjK7d7TKFt7CqepwoIQvMbJxwRwaxB8OJrdWqIUtfkuQKM+yl JDVfTRPPps2AlTUwV1rwtpWQE0BVllqmnjxCOWFteTe7rRS6lS2dRc/hiSh1YZ5ElS ppHGfdIkeRl/RM5KO5qjtQ1Pu8YfzxD4mCbXKpto= Authentication-Results: mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.600.51.1.1\)) Subject: Re: Possible G2-item at SERIALIZABLE From: Andrey Borodin In-Reply-To: <165342c0-0c75-461e-b334-b997639ad48d@aphyr.com> Date: Sun, 31 May 2026 18:19:55 +0500 Cc: PostgreSQL mailing lists Content-Transfer-Encoding: quoted-printable Message-Id: <84AC98E5-3387-40A5-A258-C6E354349154@yandex-team.ru> References: <165342c0-0c75-461e-b334-b997639ad48d@aphyr.com> To: Kyle Kingsbury X-Mailer: Apple Mail (2.3864.600.51.1.1) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello Kyle! > On 22 May 2026, at 21:44, Kyle Kingsbury wrote: >=20 > I am relatively confident that isolation levels and transactions are > being used correctly, because when I adjust the isolation level from > Serializable to (e.g.) Read Committed, I see vastly different = anomalies. > I can also reproduce the problem both using JDBC's transaction calls, > and with explicit BEGIN; SET TRANSACTION ISOLATION LEVEL > SERIALIZABLE; ...; COMMIT;, which makes me think that it's not a bug = in > the way next.jdbc or the JDBC driver handle transactions. I agree the multi-statement path looks correct, and I don't think = next.jdbc or the driver are at fault either. But I think there's a narrower issue that = both of your checks leave untouched: single-operation transactions are never wrapped = in a transaction at all. In append's invoke!, a transaction is only opened when it has more than = one op [0]. Could you confirm whether you still observe G2-item anomalies with a = server configured default_transaction_isolation =3D 'serializable' (so that the single-statement operations are certainly Serializable)? If they persist = under that setting I'll dig further... Best regards, Andrey Borodin. [0] = https://github.com/jepsen-io/sql/blob/6e34b76e2ac6a1c3edb5a9cab1c835eda4ca= 4c5e/src/jepsen/sql/append.clj#L155-L160=