Prevent the unnecessary creation of .ready file for the timeline history file.
authorFujii Masao <fujii@postgresql.org>
Thu, 6 Nov 2014 12:24:40 +0000 (21:24 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 6 Nov 2014 12:24:40 +0000 (21:24 +0900)
Previously .ready file was created for the timeline history file at the end
of an archive recovery even when WAL archiving was not enabled.
This creation is unnecessary and causes .ready file to remain infinitely.

This commit changes an archive recovery so that it creates .ready file for
the timeline history file only when WAL archiving is enabled.

Backpatch to all supported versions.

src/backend/access/transam/timeline.c

index 2d27b3ae3185eae15f5e338a9a23306c8e7b3350..50e64882b8cbe7d94dc8c5badc12eebe7837827f 100644 (file)
@@ -36,6 +36,7 @@
 #include <unistd.h>
 
 #include "access/timeline.h"
+#include "access/xlog.h"
 #include "access/xlog_internal.h"
 #include "access/xlogdefs.h"
 #include "storage/fd.h"
@@ -437,8 +438,11 @@ writeTimeLineHistory(TimeLineID newTLI, TimeLineID parentTLI,
 #endif
 
        /* The history file can be archived immediately. */
-       TLHistoryFileName(histfname, newTLI);
-       XLogArchiveNotify(histfname);
+       if (XLogArchivingActive())
+       {
+               TLHistoryFileName(histfname, newTLI);
+               XLogArchiveNotify(histfname);
+       }
 }
 
 /*