Re: Race condition in FetchTableStates() breaks synchronization of subscription tables
От | Alexander Lakhin |
---|---|
Тема | Re: Race condition in FetchTableStates() breaks synchronization of subscription tables |
Дата | |
Msg-id | a50d1da6-e3fb-1f06-0ae4-8e038d1c4d85@gmail.com обсуждение исходный текст |
Ответ на | Re: Race condition in FetchTableStates() breaks synchronization of subscription tables (vignesh C <vignesh21@gmail.com>) |
Ответы |
Re: Race condition in FetchTableStates() breaks synchronization of subscription tables
|
Список | pgsql-hackers |
05.02.2024 13:13, vignesh C wrote: > Thanks for the steps for the issue, I was able to reproduce this issue > in my environment with the steps provided. The attached patch has a > proposed fix where the latch will not be set in case of the apply > worker exiting immediately after starting. It looks like the proposed fix doesn't help when ApplyLauncherWakeup() called by a backend executing CREATE SUBSCRIPTION command. That is, with the v4-0002 patch applied and pg_usleep(300000L); added just below if (!worker_in_use) return worker_in_use; I still observe the test 027_nosuperuser running for 3+ minutes: t/027_nosuperuser.pl .. ok All tests successful. Files=1, Tests=19, 187 wallclock secs ( 0.01 usr 0.00 sys + 4.82 cusr 4.47 csys = 9.30 CPU) IIUC, it's because a launcher wakeup call, sent by "CREATE SUBSCRIPTION regression_sub ...", gets missed when launcher waits for start of another worker (logical replication worker for subscription "admin_sub"), launched just before that command. Best regards, Alexander
В списке pgsql-hackers по дате отправления: