Re: Streaming replication and unfit messages - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: Streaming replication and unfit messages
Date
Msg-id 4B7D2107.5090500@enterprisedb.com
Whole thread Raw
In response to Re: Streaming replication and unfit messages  (Fujii Masao <masao.fujii@gmail.com>)
List pgsql-hackers
Fujii Masao wrote:
>    * The received byte is stored in *c. Returns 1 if a byte was read, 0 if
> !  * if no data was available, or EOF if trouble.
> 
> Typo. 'if' is repeated.
> 
> 
> +                 ereport(COMMERROR,
> +                         (errcode_for_socket_access(),
> +                          errmsg("could not receive data from client: %m")));
> +                 return EOF;
> 
> We should use "r = EOF" instead of "return EOF" as well as other cases?

Yep.

> In WalSndHandshake(), when pq_getbyte() returns EOF, the COMMERROR message
> "unexpected EOF on standby connection" is emitted doubly. How about removing
> first COMMERROR message?

Yep.

>       r = pq_getbyte_if_available(&firstchar);
>       if (r < 0)
>       {
> !         /* unexpected error */
>           ereport(COMMERROR,
> !                 (errcode(ERRCODE_PROTOCOL_VIOLATION),
> !                  errmsg("unexpected EOF on standby connection")));
> !         proc_exit(0);
>       }
> 
> Since pq_getbyte_if_available() returns EOF if trouble, "r == EOF" should
> be used instead of "r < 0"?

Yep.

Committed with all those fixes.

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Streaming replication on win32, still broken
Next
From: Magnus Hagander
Date:
Subject: Re: Streaming replication on win32, still broken