Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table - Mailing list pgsql-hackers

From Masahiko Sawada
Subject Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table
Date
Msg-id CAD21AoCCAT_1qx2RQMBr0EVi7-qXdVE-QJX_=d-cLqPNjOisdQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table  (Masahiko Sawada <sawada.mshk@gmail.com>)
Responses Re: [HACKERS] Get stuck when dropping a subscription duringsynchronizing table  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
On Thu, Jun 15, 2017 at 10:22 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> 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.
>>>
>>

I've reviewed these patches. 0001 patch conflicts with commit
a571c7f661a7b601aafcb12196d004cdb8b8cb23.

>> 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.

+1 from me, too.
A subscription relation state may have been removed already when we
try to update it. SetSubscriptionRelState didn't emit an error in such
case but with this patch we end up with an error. Since we shouldn't
ignore such error in UpdateSubscriptionRelState I'd say we can let the
user know about that possibility in the error message.

Regards,

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



pgsql-hackers by date:

Previous
From: Kyotaro HORIGUCHI
Date:
Subject: Re: [HACKERS] Adding support for Default partition in partitioning
Next
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] pg_waldump command line arguments