Re: Error while copying a large file in pg_rewind

Michael Paquier <michael.paquier@gmail.com>

From: Michael Paquier <michael.paquier@gmail.com>
To: Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-07-03T13:20:36Z
Lists: pgsql-hackers
On Mon, Jul 3, 2017 at 8:22 PM, Kuntal Ghosh <kuntalghosh.2007@gmail.com> wrote:
> pg_rewind throws the following error when there is a file of large
> size available in the Slave server's data directory.

Oops.

> I guess we've to change the data type to bigint. Also, we need some
> implementation of ntohl() for 8-byte data types. I've attached a
> script to reproduce the error and a draft patch.

pg_basebackup/ with fe_recvint64() has its own way to do things, as
does the large object things in libpq. I would think that at least on
HEAD things could be gathered with a small set of routines. It is
annoying to have a third copy of the same thing. OK that's not
invasive but src/common/ would be a nice place to put things.

-        if (PQgetlength(res, 0, 1) != sizeof(int32))
+        if (PQgetlength(res, 0, 1) != sizeof(long long int))
This had better be int64.
-- 
Michael


Commits

  1. pg_rewind: Fix some problems when copying files >2GB.

  2. pg_rewind: Fix busted sanity check.

  3. Code review for 64-bit-large-object patch.