Re: Race condition in FetchTableStates() breaks synchronization of subscription tables
vignesh C <vignesh21@gmail.com>
From: vignesh C <vignesh21@gmail.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-02-09T06:49:28Z
Lists: pgsql-hackers
On Thu, 8 Feb 2024 at 23:30, Alexander Lakhin <exclusion@gmail.com> wrote: > > 08.02.2024 12:25, vignesh C wrote: > > Yes, the wakeup call sent by the "CREATE SUBSCRIPTION" command was > > getting missed in this case. The wakeup call can be sent during > > subscription creation/modification and when the apply worker exits. > > WaitForReplicationWorkerAttach should not reset the latch here as it > > will end up delaying the apply worker to get started after 180 seconds > > timeout(DEFAULT_NAPTIME_PER_CYCLE). The attached patch does not reset > > the latch and lets ApplyLauncherMain to reset the latch and checks if > > any new worker or missing worker needs to be started. > > Thank you for the updated patch! > I ran all the subscription tests in a loop (with the sleeps added as > before) and observed no failures and 180+ seconds duration. Thanks, I have created the following Commitfest entry for this: https://commitfest.postgresql.org/47/4816/ Regards, Vignesh
Commits
-
Fix the missing table sync due to improper invalidation handling.
- a9155efc7004 16.3 landed
- aa79bde72565 17.0 landed
- 28a8cc457b02 15.7 landed