Re: hot_standby_feedback doesn't work on busy servers in 9.3+ - Mailing list pgsql-bugs

From Amit Kapila
Subject Re: hot_standby_feedback doesn't work on busy servers in 9.3+
Date
Msg-id CAA4eK1LtJa1KYk1kVq8uFyoLbZuVVL5E2ttox1kAEgBHYiG3vQ@mail.gmail.com
Whole thread Raw
In response to Re: hot_standby_feedback doesn't work on busy servers in 9.3+  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: hot_standby_feedback doesn't work on busy servers in 9.3+  (Heikki Linnakangas <hlinnakangas@vmware.com>)
List pgsql-bugs
On Thu, Jan 16, 2014 at 2:14 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> On 2014-01-16 10:26:51 +0530, Amit Kapila wrote:
>
>> > To a good part that seems to have been introduced in
>> > 6f60fdd7015b032bf49273c99f80913d57eac284.
>>
>>    I don't see that above commit has introduced this behaviour, as
>>    the code in question seems to be there without commit as well,
>>    means that HS feedback is only sent when we don't receive data in WAL
>>    receiver.
>
> Part of that commit is the following hunk:
>
> @@ -609,19 +665,25 @@ XLogWalRcvFlush(bool dying)
>
>         /* Also let the master know that we made some progress */
>         if (!dying)
> -       {
> -           XLogWalRcvSendReply();
> -           XLogWalRcvSendHSFeedback();
> -       }
> +           XLogWalRcvSendReply(false, false);
>     }
>  }
>
> Before that commit XLogWalRcvFlush, which is in the "busy" path, sent
> hot standby feedback. After that only the idle path does so.

Okay, Thanks for pointing out.
This is clearly a problem and I think that part of patch should be reverted.
I have figured out how this has happened, actually during the patch
(Improve replication connection timeouts) development, there was an idea
to merge Reply and Feedback messages during which this call got removed
but later on that doesn't appear to be good way of proceeding, so we decide
not merge the messages. While kicking out merge of messages part, it seems
to me that we forgot to add this back.

Heikki, do you remember any other reason for this problem?
I had referred below thread and the mails following it to find this out:
http://www.postgresql.org/message-id/6C0B27F7206C9E4CA54AE035729E9C382853645A@szxeml509-mbs

Attached patch should fix this problem.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Attachment

pgsql-bugs by date:

Previous
From: Andres Freund
Date:
Subject: Re: hot_standby_feedback doesn't work on busy servers in 9.3+
Next
From: Heikki Linnakangas
Date:
Subject: Re: hot_standby_feedback doesn't work on busy servers in 9.3+