@@ -23,12 +23,12 @@ def test_minrecpoint_on_replica(self):
2323set_replication = True ,
2424initdb_params = ['--data-checksums' ],
2525pg_options = {
26- 'checkpoint_timeout' :'60min' ,
26+ # 'checkpoint_timeout': '60min',
2727'checkpoint_completion_target' :'0.9' ,
2828'bgwriter_delay' :'10ms' ,
2929'bgwriter_lru_maxpages' :'2000' ,
3030'bgwriter_lru_multiplier' :'4.0' ,
31- 'max_wal_size' :'100GB ' })
31+ 'max_wal_size' :'256MB ' })
3232
3333backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
3434self .init_pb (backup_dir )
@@ -75,36 +75,42 @@ def test_minrecpoint_on_replica(self):
7575pgbench .wait ()
7676pgbench .stdout .close ()
7777
78-
7978# generate some more data and leave it in background
8079pgbench = node .pgbench (
8180stdout = subprocess .PIPE ,
8281stderr = subprocess .STDOUT ,
83- options = ["-c" ,"4" ,"-T" ,"30 " ])
82+ options = ["-c" ,"4" ,"-j 4" , "- T" ,"100 " ])
8483
8584# get pids of background workers
8685startup_pid = replica .safe_psql (
8786'postgres' ,
88- "select pid from pg_stat_activity where backend_type = 'startup'" ).rstrip ()
87+ "select pid from pg_stat_activity "
88+ "where backend_type = 'startup'" ).rstrip ()
8989
9090checkpointer_pid = replica .safe_psql (
9191'postgres' ,
92- "select pid from pg_stat_activity where backend_type = 'checkpointer'" ).rstrip ()
92+ "select pid from pg_stat_activity "
93+ "where backend_type = 'checkpointer'" ).rstrip ()
9394
9495bgwriter_pid = replica .safe_psql (
9596'postgres' ,
96- "select pid from pg_stat_activity where backend_type = 'background writer'" ).rstrip ()
97+ "select pid from pg_stat_activity "
98+ "where backend_type = 'background writer'" ).rstrip ()
9799
98100# wait for shared buffer on replica to be filled with dirty data
99101sleep (10 )
100102
101103# break checkpointer on UpdateLastRemovedPtr
102104gdb_checkpointer = self .gdb_attach (checkpointer_pid )
105+ gdb_checkpointer ._execute ('handle SIGINT noprint nostop pass' )
106+ gdb_checkpointer ._execute ('handle SIGUSR1 noprint nostop pass' )
103107gdb_checkpointer .set_breakpoint ('UpdateLastRemovedPtr' )
104108gdb_checkpointer .continue_execution_until_break ()
105109
106110# break recovery on UpdateControlFile
107111gdb_recovery = self .gdb_attach (startup_pid )
112+ gdb_recovery ._execute ('handle SIGINT noprint nostop pass' )
113+ gdb_recovery ._execute ('handle SIGUSR1 noprint nostop pass' )
108114gdb_recovery .set_breakpoint ('UpdateMinRecoveryPoint' )
109115gdb_recovery .continue_execution_until_break ()
110116gdb_recovery .set_breakpoint ('UpdateControlFile' )