Re: 024_add_drop_pub.pl might fail due to deadlock - Mailing list pgsql-hackers

From Ajin Cherian
Subject Re: 024_add_drop_pub.pl might fail due to deadlock
Date
Msg-id CAFPTHDYau6We95XH3DqbmCx4xO29veytKU53D42uE=Qe2aAZhw@mail.gmail.com
Whole thread Raw
In response to Re: 024_add_drop_pub.pl might fail due to deadlock  (Ajin Cherian <itsajin@gmail.com>)
Responses Re: 024_add_drop_pub.pl might fail due to deadlock
List pgsql-hackers
On Tue, Jul 8, 2025 at 8:41 PM Ajin Cherian <itsajin@gmail.com> wrote:
>
> Patch with fix attached.
> I'll continue investigating whether this issue also affects HEAD.
>

While debugging if this problem can occur on HEAD, I found out that on
head, it is mostly the tablesync worker that drops the origin on HEAD
and since the tablesysnc worker does not attempt to update the
SubscriptionRel state in that process, there doesn't seem to be the
possibility of a deadlock. But there is a rare situation where the
tablesync worker could crash or get an error just prior to dropping
the origin, then the origin is dropped in the apply worker (this is
explained in the comments in process_syncing_tables_for_sync()). If
the origin has to be dropped in the apply worker, then the same
deadlock can happen in HEAD code as well. I was able to simulate this
by using an injection point to create an error on the tablesync worker
and then the similar deadlock happens on HEAD as well. Attaching a
patch for fixing this on HEAD as well.

regards,
Ajin Cherian
Fujitsu Australia

Attachment

pgsql-hackers by date:

Previous
From: shveta malik
Date:
Subject: Re: [WIP]Vertical Clustered Index (columnar store extension) - take2
Next
From: John Naylor
Date:
Subject: Re: Improving and extending int128.h to more of numeric.c