Hi Heikki,
I need PostgreSQL9.3 which fixed this problem.
It didn't happen in PostgreSQL9.2, so I agree
with your proposal which changes are done
against 93_STABLE and master.
Can you fix this in next release(9.3.3)?
------------
Tomonari Katsumata
(2014/01/13 20:16), Heikki Linnakangas wrote:> On 01/09/2014 10:55 PM, Josh Berkus wrote:>> On 01/09/2014 12:05 PM,
HeikkiLinnakangas wrote:>>> Actually, why is the partially-filled 000000010000000000000002 file>>> archived in the
firstplace? Looking at the code, it's been like that>>> forever, but it seems like a bad idea. If the original server
isstill>>> up and running, and writing more data to that file, what will happen is>>> that when the original server
latertries to archive it, it will fail>>> because the partial version of the file is already in the archive. Or>>>
worse,the partial version overwrites a previously archived more>>> complete version.>>>> Oh! This explains some
transienterrors I've seen.>>> Wouldn't it be better to not archive the old segment, and instead
switch>>> to a new segment after writing the end-of-recovery checkpoint, so that>>> the segment on the new timeline is
archivedsooner?>>>> It would be better to zero-fill and switch segments, yes. We should>> NEVER be in a position of
archivingtwo different versions of the same>> segment.>> Ok, I think we're in agreement that that's the way to go for
master.>>Now, what to do about back-branches? On one hand, I'd like to apply
the same fix to all stable branches, as the current behavior is silly
and always has been. On the other hand, we haven't heard any complaints
about it, so we probably shouldn't fix what ain't broken. Perhaps we
should apply it to 9.3, as that's where we have the acute problem the OP
reported. Thoughts?>> In summary, I propose that we change master and REL9_3_STABLE to not
archive the partial segment from previous timeline. Older branches will
keep the current behavior.>> - Heikki>