mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2026-06-21 01:34:15 +02:00
[Issue #449] fix tests
This commit is contained in:
+10
-2
@@ -1028,11 +1028,15 @@ SimpleXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr,
|
||||
GetXLogFileName(xlogfname, reader_data->tli, reader_data->xlogsegno, wal_seg_size);
|
||||
|
||||
/* obtain WAL archive subdir for ARCHIVE backup */
|
||||
// TODO: move to separate function and rewrite it
|
||||
if (reader_data->honor_subdirs)
|
||||
{
|
||||
char archive_subdir[MAXPGPATH];
|
||||
get_archive_subdir(archive_subdir, wal_archivedir, xlogfname, SEGMENT);
|
||||
|
||||
/* default value for xlogpath for error message */
|
||||
snprintf(reader_data->xlogpath, MAXPGPATH, "%s/%s", archive_subdir, xlogfname);
|
||||
|
||||
/* check existence of wal_dir/xlogid/segment.gz file ... */
|
||||
snprintf(fullpath_gz, MAXPGPATH, "%s/%s.gz", archive_subdir, xlogfname);
|
||||
|
||||
@@ -1069,6 +1073,8 @@ SimpleXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr,
|
||||
/* use directory as-is */
|
||||
else
|
||||
{
|
||||
/* default value for xlogpath for error message */
|
||||
snprintf(reader_data->xlogpath, MAXPGPATH, "%s/%s", wal_archivedir, xlogfname);
|
||||
archive_dir:
|
||||
#ifdef HAVE_LIBZ
|
||||
/* ... failing that check existence of wal_dir/segment.gz ... */
|
||||
@@ -1130,7 +1136,6 @@ file_found:
|
||||
elog(LOG, "Thread [%d]: Opening WAL segment \"%s\"",
|
||||
reader_data->thread_num, reader_data->xlogpath);
|
||||
|
||||
reader_data->xlogexists = true;
|
||||
reader_data->xlogfile = fio_open(reader_data->xlogpath,
|
||||
O_RDONLY | PG_BINARY, FIO_LOCAL_HOST);
|
||||
|
||||
@@ -1141,6 +1146,8 @@ file_found:
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
reader_data->xlogexists = true;
|
||||
}
|
||||
#ifdef HAVE_LIBZ
|
||||
/* Try to open compressed WAL segment */
|
||||
@@ -1149,7 +1156,6 @@ file_found:
|
||||
elog(LOG, "Thread [%d]: Opening compressed WAL segment \"%s\"",
|
||||
reader_data->thread_num, reader_data->gz_xlogpath);
|
||||
|
||||
reader_data->xlogexists = true;
|
||||
reader_data->gz_xlogfile = fio_gzopen(reader_data->gz_xlogpath,
|
||||
"rb", -1, FIO_LOCAL_HOST);
|
||||
if (reader_data->gz_xlogfile == NULL)
|
||||
@@ -1159,6 +1165,8 @@ file_found:
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
reader_data->xlogexists = true;
|
||||
}
|
||||
#endif
|
||||
/* Exit without error if WAL segment doesn't exist */
|
||||
|
||||
+5
-5
@@ -1545,7 +1545,7 @@ class ValidateTest(ProbackupTest, unittest.TestCase):
|
||||
backup_id_2 = self.backup_node(backup_dir, 'node', node)
|
||||
|
||||
# Corrupt WAL
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node')
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node', '00000000')
|
||||
wals = [f for f in os.listdir(wals_dir) if os.path.isfile(os.path.join(wals_dir, f)) and not f.endswith('.backup')]
|
||||
wals.sort()
|
||||
for wal in wals:
|
||||
@@ -1610,7 +1610,7 @@ class ValidateTest(ProbackupTest, unittest.TestCase):
|
||||
target_xid = res[0][0]
|
||||
|
||||
# Corrupt WAL
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node')
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node', '00000000')
|
||||
wals = [f for f in os.listdir(wals_dir) if os.path.isfile(os.path.join(wals_dir, f)) and not f.endswith('.backup')]
|
||||
wals.sort()
|
||||
for wal in wals:
|
||||
@@ -1673,10 +1673,10 @@ class ValidateTest(ProbackupTest, unittest.TestCase):
|
||||
backup_id = self.backup_node(backup_dir, 'node', node)
|
||||
|
||||
# Delete wal segment
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node')
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node', '00000000')
|
||||
wals = [f for f in os.listdir(wals_dir) if os.path.isfile(os.path.join(wals_dir, f)) and not f.endswith('.backup')]
|
||||
wals.sort()
|
||||
file = os.path.join(backup_dir, 'wal', 'node', wals[-1])
|
||||
file = os.path.join(wals_dir, wals[-1])
|
||||
os.remove(file)
|
||||
|
||||
# cut out '.gz'
|
||||
@@ -1778,7 +1778,7 @@ class ValidateTest(ProbackupTest, unittest.TestCase):
|
||||
self.backup_node(backup_dir, 'node', node)
|
||||
|
||||
# Corrupt WAL
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node')
|
||||
wals_dir = os.path.join(backup_dir, 'wal', 'node', '00000000')
|
||||
with open(os.path.join(wals_dir, walfile), "rb+", 0) as f:
|
||||
f.seek(9000)
|
||||
f.write(b"b")
|
||||
|
||||
Reference in New Issue
Block a user