Re: Synchronizing slots from primary to standby
От | Amit Kapila |
---|---|
Тема | Re: Synchronizing slots from primary to standby |
Дата | |
Msg-id | CAA4eK1LUa+044Si47WZn7z3bT4UBfNDMfWsQNPuq386W58+j6w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Synchronizing slots from primary to standby (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>) |
Ответы |
Re: Synchronizing slots from primary to standby
|
Список | pgsql-hackers |
On Tue, Apr 2, 2024 at 1:54 PM Bertrand Drouvot <bertranddrouvot.pg@gmail.com> wrote: > > On Tue, Apr 02, 2024 at 07:20:46AM +0000, Zhijie Hou (Fujitsu) wrote: > > I added one test in 040_standby_failover_slots_sync.pl in 0002 patch, which can > > reproduce the data loss issue consistently on my machine. > > Thanks! > > > It may not reproduce > > in some rare cases if concurrent xl_running_xacts are written by bgwriter, but > > I think it's still valuable if it can verify the fix in most cases. > > What about adding a "wait" injection point in LogStandbySnapshot() to prevent > checkpointer/bgwriter to log a standby snapshot? Something among those lines: > > if (AmCheckpointerProcess() || AmBackgroundWriterProcess()) > INJECTION_POINT("bgw-log-standby-snapshot"); > > And make use of it in the test, something like: > > $node_primary->safe_psql('postgres', > "SELECT injection_points_attach('bgw-log-standby-snapshot', 'wait');"); > Sometimes we want the checkpoint to log the standby snapshot as we need it at a predictable time, maybe one can use pg_log_standby_snapshot() instead of that. Can we add an injection point as a separate patch/commit after a bit more discussion? I want to discuss this in a separate thread so that later we should not get an objection to adding an injection_point at this location. One other idea to make such tests predictable is to add a developer-specific GUC say debug_bg_log_standby_snapshot or something like that but injection point sounds like a better idea. -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: