On Tue, Jul 8, 2025 at 8:41 PM Ajin Cherian <itsa...@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
HEAD-0001-Fix-a-possible-deadlock-during-ALTER-SUBSCRIPTION-.-.patch
Description: Binary data