Re: BUG #15727: PANIC: cannot abort transaction 295144144, it was already committed

r.zharkov@postgrespro.ru

From: r.zharkov@postgrespro.ru
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-04-12T02:44:04Z
Lists: pgsql-bugs
On 2019-04-11 15:52, Thomas Munro wrote:
> On Thu, Apr 11, 2019 at 5:35 PM <r.zharkov@postgrespro.ru> wrote:
>> TRAP: FailedAssertion("!((((tuple->t_data->t_infomask) & 0x0080) ||
>> (((tuple->t_data->t_infomask) & (0x1000 | ((0x0040 | 0x0010) | 0x0040 
>> |
>> 0x0010))) == 0x0040)))", File: "heapam.c", Line:
>> 4289)
> 
> Hi Roman,
> 
> Ah, I see it.  Can you reproduce the problem with this patch applied?
> 
> While going over that commit spotted an incorrect sizeof in
> EstimateTransactionStateSpace(), but I'll fix that separately.

Hello,
My test finished successfully. Everything is OK.
Thanks!

-- 
regards,
Roman Zharkov



Commits

  1. Fix GetNewTransactionId()'s interaction with xidVacLimit.

  2. Fix example in comment.

  3. Fix EvalPlanQualStart to handle partitioned result rels correctly.

  4. Fix a number of issues around modifying a previously updated row.

  5. Use FullTransactionId for the transaction stack.

  6. Add basic infrastructure for 64 bit transaction IDs.

  7. tableam: Add tuple_{insert, delete, update, lock} and use.

  8. Throw error if expiring tuple is again updated or deleted.