Re: "ERROR: deadlock detected" when replicating TRUNCATE
Peter Smith <smithpb2250@gmail.com>
From: Peter Smith <smithpb2250@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-18T01:22:05Z
Lists: pgsql-hackers
On Mon, May 17, 2021 at 6:47 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Mon, May 17, 2021 at 12:30 PM Peter Smith <smithpb2250@gmail.com> wrote: > > [...] > > The essence of the trouble seems to be that the apply_handle_truncate > > function never anticipated it may end up truncating the same table > > from 2 separate workers (subscriptions) like this test case is doing. > > Probably this is quite an old problem because the > > apply_handle_truncate code has not changed much for a long time. > > > > Yeah, have you checked it in the back branches? > Yes, the apply_handle_truncate function was introduced in April/2018 [1]. REL_11_0 was tagged in Oct/2018. The "ERROR: deadlock detected" log is reproducible in PG 11.0. ---------- [1] https://github.com/postgres/postgres/commit/039eb6e92f20499ac36cc74f8a5cef7430b706f6 Kind Regards, Peter Smith. Fujitsu Australia.
Commits
-
Fix deadlock for multiple replicating truncates of the same table.
- 71787b23e3dc 11.13 landed
- 18c6242b7c6d 12.8 landed
- c83c0257e4c3 13.4 landed
- 6d0eb3855715 14.0 landed
-
Logical replication support for TRUNCATE
- 039eb6e92f20 11.0 cited