Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hBLhS-0002Bc-Je for pgsql-bugs@arkaria.postgresql.org; Tue, 02 Apr 2019 15:51:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hBLhR-0003uc-AK for pgsql-bugs@arkaria.postgresql.org; Tue, 02 Apr 2019 15:51:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hBLhR-0003sc-33 for pgsql-bugs@lists.postgresql.org; Tue, 02 Apr 2019 15:51:45 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hBLhO-00015u-Ub for pgsql-bugs@lists.postgresql.org; Tue, 02 Apr 2019 15:51:44 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id x32FpcPR030913; Tue, 2 Apr 2019 11:51:38 -0400 From: Tom Lane To: Andres Freund cc: r.zharkov@postgrespro.ru, pgsql-bugs@lists.postgresql.org Subject: Re: BUG #15727: PANIC: cannot abort transaction 295144144, it was already committed In-reply-to: <20190402154720.skjy27z7h5xildfm@alap3.anarazel.de> References: <15727-0be246e7d852d229@postgresql.org> <20190402152925.kwt4xm7sfnay3t7t@alap3.anarazel.de> <30650.1554219866@sss.pgh.pa.us> <20190402154720.skjy27z7h5xildfm@alap3.anarazel.de> Comments: In-reply-to Andres Freund message dated "Tue, 02 Apr 2019 08:47:20 -0700" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <30911.1554220298.1@sss.pgh.pa.us> Date: Tue, 02 Apr 2019 11:51:38 -0400 Message-ID: <30912.1554220298@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Andres Freund writes: > On 2019-04-02 11:44:26 -0400, Tom Lane wrote: >> What that seems to indicate is that the "unexpected table_lock_tuple >> status" error was thrown during commit, which seems pretty odd. > I suspect that's a deferred trigger. But that code obviously could throw > errors, so we gotta handle that correctly. Deferred triggers execute before the real transaction commit, not during the critical section surrounding where we set the bit in pg_clog. But this error is seemingly getting thrown from within that critical section, otherwise we wouldn't have inconsistent xact status afterwards. regards, tom lane