Dear Jeff, > Can you explain in more detail the problem case? Is it unique to > server-based subscriptions?
No, I initially thought that it could happen for both cases. But it seems no need to consider - the invalidation messages can be accepted only at commit or while no transactions are received. My worry that GetSubscription() and GetSubscriptionConninfo() may refer the different tuple won't happen. > Looking at the code it seems that invalidations can be missed if they > come between the time the catalogs are read and the time that > MySubscriptionValid is set. But I think that's a pre-existing issue -- > perhaps we should start a new thread about that? I analyzed and I feel it's not problematic. Yes, if the ALTER SUBSCRIPTION DISABLE is executed while in the maybe_reread_subscription(), it can be ignored once. At the end of transaction or end of the loop, the invalidation message for the subscription can be accepted and MySubscriptionValid can be false, the worker will exit. This meant the worker can exit after handling the current transaction. Best regards, Hayato Kuroda FUJITSU LIMITED
