Fix bug where pg_receivexlog goes into busy loop if -s option is set to 0.
authorFujii Masao <fujii@postgresql.org>
Thu, 24 Jul 2014 06:25:26 +0000 (15:25 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 24 Jul 2014 06:25:26 +0000 (15:25 +0900)
The problem is that pg_receivexlog calls select(2) with timeout=0 and
goes into busy loop when --status-interval option is set to 0. This bug
was introduced by the commit,
74cbe966fe2d76de1d607d933c98c144dab58769.

Per report from Sawada Masahiko

src/bin/pg_basebackup/receivelog.c

index 32afc8d0dfbf67281ee29fa14311ccff6cb55cac..44b9fcc7117829c31f2029a2262580fcc0d6f0d6 100644 (file)
@@ -1094,7 +1094,7 @@ CopyStreamReceive(PGconn *conn, long timeout, char **buffer)
         * No data available. Wait for some to appear, but not longer than
         * the specified timeout, so that we can ping the server.
         */
-       if (timeout > 0)
+       if (timeout != 0)
        {
            int     ret;