From: Simon Riggs Date: Wed, 8 Aug 2012 20:25:23 +0000 (+0100) Subject: Fix minor bug in XLogFileRead() that accidentally worked. X-Git-Tag: REL9_3_BETA1~1122 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8143a56854a4f46968b12badb5b008f448e08ef5;p=thirdparty%2Fpostgresql.git Fix minor bug in XLogFileRead() that accidentally worked. Cascading replication copied the incoming file into pg_xlog but didn't set path correctly, so the first attempt to open file failed causing it to loop around and look for file in pg_xlog. So the earlier coding worked, but accidentally rather than by design. Spotted by Fujii Masao, fix by Fujii Masao and Simon Riggs --- diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index efd0347bc9b..efda4634d56 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -2805,6 +2805,11 @@ XLogFileRead(XLogSegNo segno, int emode, TimeLineID tli, errmsg("could not rename file \"%s\" to \"%s\": %m", path, xlogfpath))); + /* + * Set path to point at the new file in pg_xlog. + */ + strncpy(path, xlogfpath, MAXPGPATH); + /* * If the existing segment was replaced, since walsenders might have * it open, request them to reload a currently-open segment.