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

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>, r.zharkov@postgrespro.ru
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Andres Freund <andres@anarazel.de>, pgsql-bugs@lists.postgresql.org
Date: 2019-04-08T08:18:48Z
Lists: pgsql-bugs

Attachments

On 2019/04/08 16:21, Amit Langote wrote:
> Now that Andres has taken care of the other issues [1], maybe this one's
> good to go?  The isolation test part needed to be rebased over Andres'
> commit, which I've done in the attached updated patch.

The patch I attached in the previous email doesn't apply as-is to
back-branches due to rebasing.  I've attached another patch here, which
applies to both PG 11 and 10 branches.

Thanks,
Amit

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.