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-08T07:21:47Z
Lists: pgsql-bugs
Attachments
- bug-15677-fix-with-test_v2.patch (text/plain) patch v2
On 2019/04/07 1:23, Tom Lane wrote: > It seems that there may be some connection between this problem and > EPQ. I was working on committing Amit's fix for bug #15677, which > demonstrated that EPQ doesn't work for partitioned-table target rels. > It seemed like there really needed to be regression test coverage for > that, so I tried to convert his crasher example into an isolation test. > It does indeed crash without Amit's fix ... but with it, lookee what > I get: > > +error in steps c1 complexpartupdate: ERROR: unexpected table_lock_tuple status: 1 > > That seems fully reproducible in this test. I haven't looked into > exactly what's causing that, but now that we have a reproducible > example, somebody should. > > I'm not quite sure if I should commit this as-is or wait till the > other problem is fixed. A crash is probably worse than a bogus > error, but I don't like committing obviously-wrong "expected" output. > Thoughts? Thank you Tom for picking it up and adding the test which I should've done to begin with. 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. Thanks, Amit [1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=41f5e04ae
Commits
-
Fix GetNewTransactionId()'s interaction with xidVacLimit.
- f7feb020c3d8 12.0 landed
-
Fix example in comment.
- 16954e22e2a8 12.0 cited
-
Fix EvalPlanQualStart to handle partitioned result rels correctly.
- 1b5bbe4bcc91 10.8 landed
- b291488da513 11.3 landed
- a8cb8f124679 12.0 landed
-
Fix a number of issues around modifying a previously updated row.
- 41f5e04aec6c 12.0 landed
-
Use FullTransactionId for the transaction stack.
- ad308058cc86 12.0 cited
-
Add basic infrastructure for 64 bit transaction IDs.
- 2fc7af5e9660 12.0 cited
-
tableam: Add tuple_{insert, delete, update, lock} and use.
- 5db6df0c0117 12.0 cited
-
Throw error if expiring tuple is again updated or deleted.
- 6868ed7491b7 9.3.0 cited