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

Reply via email to