@@ -1285,10 +1285,8 @@ def test_drop_rel_during_full_backup(self):
12851285
12861286self .init_pb (backup_dir )
12871287self .add_instance (backup_dir ,'node' ,node )
1288- self .set_archiving (backup_dir ,'node' ,node )
12891288node .slow_start ()
12901289
1291-
12921290for i in range (1 ,512 ):
12931291node .safe_psql (
12941292"postgres" ,
@@ -1356,6 +1354,74 @@ def test_drop_rel_during_full_backup(self):
13561354# Clean after yourself
13571355self .del_test_dir (module_name ,fname )
13581356
1357+ # @unittest.skip("skip")
1358+ def test_drop_db_during_full_backup (self ):
1359+ """"""
1360+ fname = self .id ().split ('.' )[3 ]
1361+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
1362+ node = self .make_simple_node (
1363+ base_dir = os .path .join (module_name ,fname ,'node' ),
1364+ set_replication = True ,
1365+ initdb_params = ['--data-checksums' ])
1366+
1367+ self .init_pb (backup_dir )
1368+ self .add_instance (backup_dir ,'node' ,node )
1369+ node .slow_start ()
1370+
1371+ for i in range (1 ,100 ):
1372+ node .safe_psql (
1373+ "postgres" ,
1374+ "create database t_heap_{0}" .format (i ))
1375+
1376+ node .safe_psql (
1377+ "postgres" ,
1378+ "VACUUM" )
1379+
1380+ # FULL backup
1381+ gdb = self .backup_node (
1382+ backup_dir ,'node' ,node ,gdb = True ,
1383+ options = [
1384+ '--stream' ,'--log-level-file=LOG' ,
1385+ '--log-level-console=LOG' ,'--progress' ])
1386+
1387+ gdb .set_breakpoint ('backup_files' )
1388+ gdb .run_until_break ()
1389+
1390+ # REMOVE file
1391+ for i in range (1 ,100 ):
1392+ node .safe_psql (
1393+ "postgres" ,
1394+ "drop database t_heap_{0}" .format (i ))
1395+
1396+ node .safe_psql (
1397+ "postgres" ,
1398+ "CHECKPOINT" )
1399+
1400+ node .safe_psql (
1401+ "postgres" ,
1402+ "CHECKPOINT" )
1403+
1404+ # File removed, we can proceed with backup
1405+ gdb .continue_execution_until_exit ()
1406+
1407+ pgdata = self .pgdata_content (node .data_dir )
1408+
1409+ #with open(os.path.join(backup_dir, 'log', 'pg_probackup.log')) as f:
1410+ # log_content = f.read()
1411+ # self.assertTrue(
1412+ # 'LOG: File "{0}" is not found'.format(absolute_path) in log_content,
1413+ # 'File "{0}" should be deleted but it`s not'.format(absolute_path))
1414+
1415+ node .cleanup ()
1416+ self .restore_node (backup_dir ,'node' ,node )
1417+
1418+ # Physical comparison
1419+ pgdata_restored = self .pgdata_content (node .data_dir )
1420+ self .compare_pgdata (pgdata ,pgdata_restored )
1421+
1422+ # Clean after yourself
1423+ self .del_test_dir (module_name ,fname )
1424+
13591425# @unittest.skip("skip")
13601426def test_drop_rel_during_backup_delta (self ):
13611427""""""