@@ -3409,3 +3409,73 @@ def test_restore_primary_slot_info(self):
34093409
34103410# Clean after yourself
34113411self .del_test_dir (module_name ,fname )
3412+
3413+ def test_issue_249 (self ):
3414+ """
3415+ https://github.com/postgrespro/pg_probackup/issues/249
3416+ """
3417+ fname = self .id ().split ('.' )[3 ]
3418+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
3419+ node = self .make_simple_node (
3420+ base_dir = os .path .join (module_name ,fname ,'node' ),
3421+ initdb_params = ['--data-checksums' ],
3422+ pg_options = {'autovacuum' :'off' })
3423+
3424+ self .init_pb (backup_dir )
3425+ self .add_instance (backup_dir ,'node' ,node )
3426+ self .set_archiving (backup_dir ,'node' ,node )
3427+ node .slow_start ()
3428+
3429+ node .safe_psql (
3430+ 'postgres' ,
3431+ 'CREATE database db1' )
3432+
3433+ node .pgbench_init (scale = 5 )
3434+
3435+ node .safe_psql (
3436+ 'postgres' ,
3437+ 'CREATE TABLE t1 as SELECT * from pgbench_accounts where aid > 200000 and aid < 450000' )
3438+
3439+ node .safe_psql (
3440+ 'postgres' ,
3441+ 'DELETE from pgbench_accounts where aid > 200000 and aid < 450000' )
3442+
3443+ node .safe_psql (
3444+ 'postgres' ,
3445+ 'select * from pgbench_accounts' )
3446+
3447+ # FULL backup
3448+ self .backup_node (backup_dir ,'node' ,node )
3449+
3450+ node .safe_psql (
3451+ 'postgres' ,
3452+ 'INSERT INTO pgbench_accounts SELECT * FROM t1' )
3453+
3454+ # restore FULL backup
3455+ node_restored_1 = self .make_simple_node (
3456+ base_dir = os .path .join (module_name ,fname ,'node_restored_1' ))
3457+ node_restored_1 .cleanup ()
3458+
3459+ self .restore_node (
3460+ backup_dir ,'node' ,
3461+ node_restored_1 ,options = ["--db-include=db1" ])
3462+
3463+ self .set_auto_conf (
3464+ node_restored_1 ,
3465+ {'port' :node_restored_1 .port ,'hot_standby' :'on' })
3466+
3467+ node_restored_1 .slow_start ()
3468+
3469+ node_restored_1 .safe_psql (
3470+ 'db1' ,
3471+ 'select 1' )
3472+
3473+ try :
3474+ node_restored_1 .safe_psql (
3475+ 'postgres' ,
3476+ 'select 1' )
3477+ except QueryException as e :
3478+ self .assertIn ('FATAL' ,e .message )
3479+
3480+ # Clean after yourself
3481+ self .del_test_dir (module_name ,fname )