Skip to content

Commit b33f93c

Browse files
committed
Merge branch 'master' into issue_203
2 parents 9570db0 + 04d1ec9 commit b33f93c

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

tests/backup.py

+85
Original file line numberDiff line numberDiff line change
@@ -1273,6 +1273,89 @@ def test_tablespace_handling_2(self):
12731273
# Clean after yourself
12741274
self.del_test_dir(module_name, fname)
12751275

1276+
# @unittest.skip("skip")
1277+
def test_drop_rel_during_full_backup(self):
1278+
""""""
1279+
fname = self.id().split('.')[3]
1280+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
1281+
node = self.make_simple_node(
1282+
base_dir=os.path.join(module_name, fname, 'node'),
1283+
set_replication=True,
1284+
initdb_params=['--data-checksums'])
1285+
1286+
self.init_pb(backup_dir)
1287+
self.add_instance(backup_dir, 'node', node)
1288+
self.set_archiving(backup_dir, 'node', node)
1289+
node.slow_start()
1290+
1291+
1292+
for i in range(1, 512):
1293+
node.safe_psql(
1294+
"postgres",
1295+
"create table t_heap_{0} as select i"
1296+
" as id from generate_series(0,100) i".format(i))
1297+
1298+
node.safe_psql(
1299+
"postgres",
1300+
"VACUUM")
1301+
1302+
node.pgbench_init(scale=10)
1303+
1304+
relative_path_1 = node.safe_psql(
1305+
"postgres",
1306+
"select pg_relation_filepath('t_heap_1')").rstrip()
1307+
1308+
relative_path_2 = node.safe_psql(
1309+
"postgres",
1310+
"select pg_relation_filepath('t_heap_1')").rstrip()
1311+
1312+
absolute_path_1 = os.path.join(node.data_dir, relative_path_1)
1313+
absolute_path_2 = os.path.join(node.data_dir, relative_path_2)
1314+
1315+
# FULL backup
1316+
gdb = self.backup_node(
1317+
backup_dir, 'node', node,
1318+
options=['--stream', '--log-level-file=LOG', '--log-level-console=LOG', '--progress'],
1319+
gdb=True)
1320+
1321+
gdb.set_breakpoint('backup_files')
1322+
gdb.run_until_break()
1323+
1324+
# REMOVE file
1325+
for i in range(1, 512):
1326+
node.safe_psql(
1327+
"postgres",
1328+
"drop table t_heap_{0}".format(i))
1329+
1330+
node.safe_psql(
1331+
"postgres",
1332+
"CHECKPOINT")
1333+
1334+
node.safe_psql(
1335+
"postgres",
1336+
"CHECKPOINT")
1337+
1338+
# File removed, we can proceed with backup
1339+
gdb.continue_execution_until_exit()
1340+
1341+
pgdata = self.pgdata_content(node.data_dir)
1342+
1343+
#with open(os.path.join(backup_dir, 'log', 'pg_probackup.log')) as f:
1344+
# log_content = f.read()
1345+
# self.assertTrue(
1346+
# 'LOG: File "{0}" is not found'.format(absolute_path) in log_content,
1347+
# 'File "{0}" should be deleted but it`s not'.format(absolute_path))
1348+
1349+
node.cleanup()
1350+
self.restore_node(backup_dir, 'node', node)
1351+
1352+
# Physical comparison
1353+
pgdata_restored = self.pgdata_content(node.data_dir)
1354+
self.compare_pgdata(pgdata, pgdata_restored)
1355+
1356+
# Clean after yourself
1357+
self.del_test_dir(module_name, fname)
1358+
12761359
# @unittest.skip("skip")
12771360
def test_drop_rel_during_backup_delta(self):
12781361
""""""
@@ -1288,6 +1371,8 @@ def test_drop_rel_during_backup_delta(self):
12881371
self.set_archiving(backup_dir, 'node', node)
12891372
node.slow_start()
12901373

1374+
node.pgbench_init(scale=10)
1375+
12911376
node.safe_psql(
12921377
"postgres",
12931378
"create table t_heap as select i"

0 commit comments

Comments
 (0)