*** a/src/backend/access/transam/xlog.c --- b/src/backend/access/transam/xlog.c *************** *** 8943,8949 **** retry: sources = XLOG_FROM_PG_XLOG; if (InArchiveRecovery) sources |= XLOG_FROM_ARCHIVE; - sources &= ~failedSources; readFile = XLogFileReadAnyTLI(readId, readSeg, emode_arg, sources); --- 8943,8948 ---- *************** *** 9041,9048 **** retry: return true; next_record_is_invalid: - failedSources |= readSource; - if (readFile >= 0) close(readFile); readFile = -1; --- 9040,9045 ---- *************** *** 9050,9056 **** next_record_is_invalid: --- 9047,9056 ---- readSource = 0; if (StandbyMode) + { + failedSources |= readSource; goto retry; + } else return false;