Re: subscription/015_stream sometimes breaks

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: subscription/015_stream sometimes breaks
Дата
Msg-id 20230823080056.tbesqtabjcghzdfq@alvherre.pgsql
обсуждение исходный текст
Ответ на RE: subscription/015_stream sometimes breaks  ("Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>)
Ответы Re: subscription/015_stream sometimes breaks  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Re: subscription/015_stream sometimes breaks  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On 2023-Aug-23, Zhijie Hou (Fujitsu) wrote:

> [1]--
>         LWLockAcquire(LogicalRepWorkerLock, LW_SHARED);
> 
>         workers = logicalrep_workers_find(MyLogicalRepWorker->subid, true);
>         foreach(lc, workers)
>         {
>             LogicalRepWorker *w = (LogicalRepWorker *) lfirst(lc);
> 
> **            if (isParallelApplyWorker(w))
>                 logicalrep_worker_stop_internal(w, SIGTERM);
>         }

Hmm, I think if worker->in_use is false, we shouldn't consult the rest
of the struct at all, so I propose to add the attached 0001 as a minimal
fix.

In fact, I'd go further and propose that if we do take that stance, then
we don't need clear out the contents of this struct at all, so let's
not.  That's 0002.

And the reason 0002 does not remove the zeroing of ->proc is that the
tests gets stuck when I do that, and the reason for that looks to be
some shoddy coding in WaitForReplicationWorkerAttach, so I propose we
change that too, as in 0003.

Thoughts?

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Daniel Gustafsson
Дата:
Сообщение: Re: pg_upgrade - a function parameter shadows global 'new_cluster'
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: initdb caching during tests