From 04bab3e92702f7e7dc8a0cbfd2aea3a1564ffbe7 Mon Sep 17 00:00:00 2001 From: Grigory Smolkin Date: Wed, 17 Feb 2021 12:50:38 +0300 Subject: [PATCH] [Issue #328] added tests.retention.RetentionTest.test_concurrent_running_backup --- tests/retention.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/retention.py b/tests/retention.py index 6dc8536c..0122913d 100644 --- a/tests/retention.py +++ b/tests/retention.py @@ -2536,3 +2536,42 @@ class RetentionTest(ProbackupTest, unittest.TestCase): self.validate_pb(backup_dir, 'node') self.del_test_dir(module_name, fname, [node]) + + def test_concurrent_running_full_backup(self): + """ + https://github.com/postgrespro/pg_probackup/issues/328 + """ + fname = self.id().split('.')[3] + backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup') + node = self.make_simple_node( + base_dir=os.path.join(module_name, fname, 'node'), + set_replication=True, + initdb_params=['--data-checksums']) + + self.init_pb(backup_dir) + self.add_instance(backup_dir, 'node', node) + self.set_archiving(backup_dir, 'node', node) + node.slow_start() + + # FULL + self.backup_node(backup_dir, 'node', node) + + gdb = self.backup_node(backup_dir, 'node', node, gdb=True) + gdb.set_breakpoint('backup_data_file') + gdb.run_until_break() + gdb.kill() + + self.assertTrue( + self.show_pb(backup_dir, 'node')[0]['status'], + 'RUNNING') + + print(self.backup_node( + backup_dir, 'node', node, backup_type='delta', + options=['--retention-redundancy=2', '--delete-expired', '--log-level-console=VERBOSE'], + return_id=False)) + + self.assertTrue( + self.show_pb(backup_dir, 'node')[1]['status'], + 'RUNNING') + + self.del_test_dir(module_name, fname, [node])