Re: Updated version of pg_receivexlog
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Magnus Hagander <magnus@hagander.net>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Jaime Casanova <jaime@2ndquadrant.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-10-27T09:25:59Z
Lists: pgsql-hackers
On Thu, Oct 27, 2011 at 5:18 PM, Magnus Hagander <magnus@hagander.net> wrote: > Not sure I follow. When we arrive at PQgetCopyData() there should be > nothing buffered, and if the end of stream happens there it returns > -1, and we exit, no? So where is the data that's lost? > > I do realize we don't actually fsync() and close() in this case - is > that what you are referring to? But the data should already have been > write()d, so it should still be there, no? Oh, right. Hmm.. xlogdump might be the cause. Though I've not read the code of xlogdump, I wonder if it gives up outputting the contents of WAL file when it finds a partial WAL page... This strikes me that recovery code has the same problem. No? IOW, when a partial WAL page is found during recovery, I'm afraid that page would not be replayed though it contains valid data. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center