On Thu, 2008-08-07 at 14:59 +0100, Simon Riggs wrote: > I'll do a patch. Thanks for your input.
Please review attached patch. -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support
Index: src/backend/access/transam/xlog.c =================================================================== RCS file: /home/sriggs/pg/REPOSITORY/pgsql/src/backend/access/transam/xlog.c,v retrieving revision 1.316 diff -c -r1.316 xlog.c *** src/backend/access/transam/xlog.c 13 Jul 2008 20:45:47 -0000 1.316 --- src/backend/access/transam/xlog.c 7 Aug 2008 14:31:18 -0000 *************** *** 6721,6729 **** CleanupBackupHistory(); /* ! * Wait until the history file has been archived. We assume that the ! * alphabetic sorting property of the WAL files ensures the last WAL ! * file is guaranteed archived by the time the history file is archived. * * We wait forever, since archive_command is supposed to work and * we assume the admin wanted his backup to work completely. If you --- 6721,6732 ---- CleanupBackupHistory(); /* ! * Wait until the last WAL file has been archived. We assume that the ! * alphabetic sorting property of the WAL files ensures the history ! * file is guaranteed archived by the time the last WAL file is archived. ! * The history file name depends upon the startpoint, whereas the last ! * file depends upon the stoppoint. They are always different because we ! * make an explicit xlog switch earlier in this function. * * We wait forever, since archive_command is supposed to work and * we assume the admin wanted his backup to work completely. If you *************** *** 6733,6745 **** * set to .ready before we slept, then while asleep it has been set * to .done and then removed by a concurrent checkpoint. */ - BackupHistoryFileName(histfilepath, ThisTimeLineID, _logId, _logSeg, - startpoint.xrecoff % XLogSegSize); - seconds_before_warning = 60; waits = 0; ! while (!XLogArchiveCheckDone(histfilepath, false)) { CHECK_FOR_INTERRUPTS(); --- 6736,6745 ---- * set to .ready before we slept, then while asleep it has been set * to .done and then removed by a concurrent checkpoint. */ seconds_before_warning = 60; waits = 0; ! while (!XLogArchiveCheckDone(stopxlogfilename, false)) { CHECK_FOR_INTERRUPTS();
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers