BUG #15727: PANIC: cannot abort transaction 295144144, it was already committed
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: r.zharkov@postgrespro.ru
Date: 2019-04-02T10:30:15Z
Lists: pgsql-bugs
The following bug has been logged on the website: Bug reference: 15727 Logged by: Roman Zharkov Email address: r.zharkov@postgrespro.ru PostgreSQL version: Unsupported/Unknown Operating system: Ubuntu 5.4.0-6ubuntu1~16.04.10 Description: Hello, Our test server crashed while benchmarking connection pooler called Yandex Odyssey. There is no debugging info in the code dump now, because it takes few hours to reproduce the error. We will try to reproduce the error with debugging info. Server version - PostgreSQL 12devel-master, commit - bb76134 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64-bit The error does not reproduce on PostgreSQL 12devel-master, commit - 2fadf24 2019-04-01 15:27:38.829 +07 [7524] ERROR: unexpected table_lock_tuple status: 1 2019-04-01 15:27:38.829 +07 [7524] STATEMENT: UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 1; 2019-04-01 15:27:38.829 +07 [7524] PANIC: cannot abort transaction 400048276, it was already committed 2019-04-01 15:27:39.001 +07 [7499] ERROR: unexpected table_lock_tuple status: 1 2019-04-01 15:27:39.001 +07 [7499] STATEMENT: UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 2; 2019-04-01 15:27:39.001 +07 [7499] PANIC: cannot abort transaction 400051561, it was already committed 2019-04-01 15:27:41.193 +07 [7509] ERROR: unexpected table_lock_tuple status: 1 2019-04-01 15:27:41.193 +07 [7509] STATEMENT: UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 1; 2019-04-01 15:27:41.193 +07 [7509] PANIC: cannot abort transaction 400088425, it was already committed 2019-04-01 15:41:01.176 +07 [3559] LOG: server process (PID 7499) was terminated by signal 6: Aborted 2019-04-01 15:41:01.176 +07 [3559] DETAIL: Failed process was running: UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 2; 2019-04-01 15:41:01.176 +07 [3559] LOG: terminating any other active server processes [New LWP 7509] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `postgres: zharkov test 127.0.0.1(42666) UPDATE '. Program terminated with signal SIGABRT, Aborted. #0 0x00007f1f4c6c7428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 54 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007f1f4c6c7428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007f1f4c6c902a in __GI_abort () at abort.c:89 #2 0x000000000085faac in errfinish () #3 0x00000000008633e4 in elog_finish () #4 0x000000000050266d in RecordTransactionAbort () #5 0x0000000000502788 in AbortTransaction () #6 0x0000000000502fb5 in AbortCurrentTransaction () #7 0x000000000075029f in PostgresMain () #8 0x0000000000480593 in ServerLoop () #9 0x00000000006dfc04 in PostmasterMain () #10 0x00000000004813b9 in main ()
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