Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table

Поиск
Список
Период
Сортировка
От Masahiko Sawada
Тема Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table
Дата
Msg-id CAD21AoBW4U_D+g6QB=WpHhJxS2cEZB7XHXYZc2jgVVMAATM_PA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
Ответы Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table  (Masahiko Sawada <sawada.mshk@gmail.com>)
Список pgsql-hackers
On Thu, Jun 15, 2017 at 7:35 AM, Petr Jelinek
<petr.jelinek@2ndquadrant.com> wrote:
> On 13/06/17 21:49, Peter Eisentraut wrote:
>> On 6/13/17 02:33, Noah Misch wrote:
>>>> Steps to reproduce -
>>>> X cluster -> create 100 tables , publish all tables  (create publication pub
>>>> for all tables);
>>>> Y Cluster -> create 100 tables ,create subscription(create subscription sub
>>>> connection 'user=centos host=localhost' publication pub;
>>>> Y cluster ->drop subscription - drop subscription sub;
>>>>
>>>> check the log file on Y cluster.
>>>>
>>>> Sometime , i have seen this error on psql prompt and drop subscription
>>>> operation got failed at first attempt.
>>>>
>>>> postgres=# drop subscription sub;
>>>> ERROR:  tuple concurrently updated
>>>> postgres=# drop subscription sub;
>>>> NOTICE:  dropped replication slot "sub" on publisher
>>>> DROP SUBSCRIPTION
>>>
>>> [Action required within three days.  This is a generic notification.]
>>
>> It's being worked on.  Let's see by Thursday.
>>
>
> Attached fixes it (it was mostly about order of calls). I also split the
> SetSubscriptionRelState into 2 separate interface while I was changing
> it, because now that the update_only bool was added it has become quite
> strange to have single interface for what is basically two separate
> functions.
>
> There are still couple of remaining issues from this thread though.
> Namely the AccessExclusiveLock of the pg_subscription catalog which is
> not very pretty, but we need a way to block launcher from accessing the
> subscription which is being dropped and make sure it will not start new
> workers for it afterwards. Question is how however as by the time
> launcher can lock individual subscription it is already processing it.
> So it looks to me like we'd need to reread the catalog with new snapshot
> after the lock was acquired which seems bit wasteful (I wonder if we
> could just AcceptInvalidationMessages and refetch from syscache). Any
> better ideas?
>
> Other related problem is locking of subscriptions during operations on
> them, especially AlterSubscription seems like it should lock the
> subscription itself. I did that in 0002.
>

Thank you for the patch! Sorry I don't have a time for it today but
I'll review these patches tomorrow.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: [HACKERS] Assorted leaks of PGresults
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: [HACKERS] GSoC 2017 weekly progress reports (week 2)