Skip to content

Commit 7fa95bb

Browse files
committed
Backpatch addition of pump_until() more completely.
In a2ab9c0 I just backpatched the introduction of pump_until(), without changing the existing local definitions (as 6da65a3). The necessary changes seemed more verbose than desirable. However, that leads to warnings, as I failed to realize... Backpatch to all versions containing pump_until() calls before f74496d (there's none in 10). Discussion: https://postgr.es/m/2808491.1651802860@sss.pgh.pa.us Discussion: https://postgr.es/m/18b37361-b482-b9d8-f30d-6115cd5ce25c@enterprisedb.com Backpatch: 11-14
1 parent 66ca142 commit 7fa95bb

File tree

2 files changed

+18
-73
lines changed

2 files changed

+18
-73
lines changed

src/test/recovery/t/013_crash_restart.pl

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
INSERT INTO alive VALUES($$committed-before-sigquit$$);
7575
SELECT pg_backend_pid();
7676
];
77-
ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
77+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
7878
'acquired pid for SIGQUIT');
7979
my $pid = $killme_stdout;
8080
chomp($pid);
@@ -86,7 +86,7 @@
8686
BEGIN;
8787
INSERT INTO alive VALUES($$in-progress-before-sigquit$$) RETURNING status;
8888
];
89-
ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigquit/m),
89+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigquit/m),
9090
'inserted in-progress-before-sigquit');
9191
$killme_stdout = '';
9292
$killme_stderr = '';
@@ -99,7 +99,7 @@
9999
SELECT $$psql-connected$$;
100100
SELECT pg_sleep(3600);
101101
];
102-
ok(pump_until($monitor, \$monitor_stdout, qr/psql-connected/m),
102+
ok(pump_until($monitor, $psql_timeout, \$monitor_stdout, qr/psql-connected/m),
103103
'monitor connected');
104104
$monitor_stdout = '';
105105
$monitor_stderr = '';
@@ -116,6 +116,7 @@
116116
];
117117
ok( pump_until(
118118
$killme,
119+
$psql_timeout,
119120
\$killme_stderr,
120121
qr/WARNING: terminating connection because of unexpected SIGQUIT signal|server closed the connection unexpectedly|connection to server was lost|could not send data to server/m
121122
),
@@ -129,6 +130,7 @@
129130
# sending.
130131
ok( pump_until(
131132
$monitor,
133+
$psql_timeout,
132134
\$monitor_stderr,
133135
qr/WARNING: terminating connection because of crash of another server process|server closed the connection unexpectedly|connection to server was lost|could not send data to server/m
134136
),
@@ -151,7 +153,7 @@
151153
$killme_stdin .= q[
152154
SELECT pg_backend_pid();
153155
];
154-
ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
156+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
155157
"acquired pid for SIGKILL");
156158
$pid = $killme_stdout;
157159
chomp($pid);
@@ -164,7 +166,7 @@
164166
BEGIN;
165167
INSERT INTO alive VALUES($$in-progress-before-sigkill$$) RETURNING status;
166168
];
167-
ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigkill/m),
169+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigkill/m),
168170
'inserted in-progress-before-sigkill');
169171
$killme_stdout = '';
170172
$killme_stderr = '';
@@ -176,7 +178,7 @@
176178
SELECT $$psql-connected$$;
177179
SELECT pg_sleep(3600);
178180
];
179-
ok(pump_until($monitor, \$monitor_stdout, qr/psql-connected/m),
181+
ok(pump_until($monitor, $psql_timeout, \$monitor_stdout, qr/psql-connected/m),
180182
'monitor connected');
181183
$monitor_stdout = '';
182184
$monitor_stderr = '';
@@ -194,6 +196,7 @@
194196
];
195197
ok( pump_until(
196198
$killme,
199+
$psql_timeout,
197200
\$killme_stderr,
198201
qr/server closed the connection unexpectedly|connection to server was lost|could not send data to server/m
199202
),
@@ -205,6 +208,7 @@
205208
# sending.
206209
ok( pump_until(
207210
$monitor,
211+
$psql_timeout,
208212
\$monitor_stderr,
209213
qr/WARNING: terminating connection because of crash of another server process|server closed the connection unexpectedly|connection to server was lost|could not send data to server/m
210214
),
@@ -242,33 +246,3 @@
242246
'can still write after orderly restart');
243247

244248
$node->stop();
245-
246-
# Pump until string is matched, or timeout occurs
247-
sub pump_until
248-
{
249-
my ($proc, $stream, $untl) = @_;
250-
$proc->pump_nb();
251-
while (1)
252-
{
253-
last if $$stream =~ /$untl/;
254-
if ($psql_timeout->is_expired)
255-
{
256-
diag("aborting wait: program timed out");
257-
diag("stream contents: >>", $$stream, "<<");
258-
diag("pattern searched for: ", $untl);
259-
260-
return 0;
261-
}
262-
if (not $proc->pumpable())
263-
{
264-
diag("aborting wait: program died");
265-
diag("stream contents: >>", $$stream, "<<");
266-
diag("pattern searched for: ", $untl);
267-
268-
return 0;
269-
}
270-
$proc->pump();
271-
}
272-
return 1;
273-
274-
}

src/test/recovery/t/022_crash_temp_files.pl

Lines changed: 8 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
$killme_stdin .= q[
5959
SELECT pg_backend_pid();
6060
];
61-
ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
61+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
6262
'acquired pid for SIGKILL');
6363
my $pid = $killme_stdout;
6464
chomp($pid);
@@ -87,7 +87,7 @@
8787
INSERT INTO tab_crash (a) VALUES(1);
8888
SELECT $$insert-tuple-to-lock-next-insert$$;
8989
];
90-
pump_until($killme2, \$killme_stdout2, qr/insert-tuple-to-lock-next-insert/m);
90+
pump_until($killme2, $psql_timeout, \$killme_stdout2, qr/insert-tuple-to-lock-next-insert/m);
9191
$killme_stdout2 = '';
9292
$killme_stderr2 = '';
9393

@@ -100,7 +100,7 @@
100100
SELECT $$in-progress-before-sigkill$$;
101101
INSERT INTO tab_crash (a) SELECT i FROM generate_series(1, 5000) s(i);
102102
];
103-
ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigkill/m),
103+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigkill/m),
104104
'insert in-progress-before-sigkill');
105105
$killme_stdout = '';
106106
$killme_stderr = '';
@@ -122,7 +122,7 @@ BEGIN
122122
SELECT $$insert-tuple-lock-waiting$$;
123123
];
124124

125-
pump_until($killme2, \$killme_stdout2, qr/insert-tuple-lock-waiting/m);
125+
pump_until($killme2, $psql_timeout, \$killme_stdout2, qr/insert-tuple-lock-waiting/m);
126126
$killme_stdout2 = '';
127127
$killme_stderr2 = '';
128128

@@ -171,7 +171,7 @@ BEGIN
171171
$killme_stdin .= q[
172172
SELECT pg_backend_pid();
173173
];
174-
ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
174+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m),
175175
'acquired pid for SIGKILL');
176176
$pid = $killme_stdout;
177177
chomp($pid);
@@ -188,7 +188,7 @@ BEGIN
188188
INSERT INTO tab_crash (a) VALUES(1);
189189
SELECT $$insert-tuple-to-lock-next-insert$$;
190190
];
191-
pump_until($killme2, \$killme_stdout2, qr/insert-tuple-to-lock-next-insert/m);
191+
pump_until($killme2, $psql_timeout, \$killme_stdout2, qr/insert-tuple-to-lock-next-insert/m);
192192
$killme_stdout2 = '';
193193
$killme_stderr2 = '';
194194

@@ -201,7 +201,7 @@ BEGIN
201201
SELECT $$in-progress-before-sigkill$$;
202202
INSERT INTO tab_crash (a) SELECT i FROM generate_series(1, 5000) s(i);
203203
];
204-
ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigkill/m),
204+
ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigkill/m),
205205
'insert in-progress-before-sigkill');
206206
$killme_stdout = '';
207207
$killme_stderr = '';
@@ -223,7 +223,7 @@ BEGIN
223223
SELECT $$insert-tuple-lock-waiting$$;
224224
];
225225

226-
pump_until($killme2, \$killme_stdout2, qr/insert-tuple-lock-waiting/m);
226+
pump_until($killme2, $psql_timeout, \$killme_stdout2, qr/insert-tuple-lock-waiting/m);
227227
$killme_stdout2 = '';
228228
$killme_stderr2 = '';
229229

@@ -266,32 +266,3 @@ BEGIN
266266
'temporary file was removed');
267267

268268
$node->stop();
269-
270-
# Pump until string is matched, or timeout occurs
271-
sub pump_until
272-
{
273-
my ($proc, $stream, $untl) = @_;
274-
$proc->pump_nb();
275-
while (1)
276-
{
277-
last if $$stream =~ /$untl/;
278-
if ($psql_timeout->is_expired)
279-
{
280-
diag("aborting wait: program timed out");
281-
diag("stream contents: >>", $$stream, "<<");
282-
diag("pattern searched for: ", $untl);
283-
284-
return 0;
285-
}
286-
if (not $proc->pumpable())
287-
{
288-
diag("aborting wait: program died");
289-
diag("stream contents: >>", $$stream, "<<");
290-
diag("pattern searched for: ", $untl);
291-
292-
return 0;
293-
}
294-
$proc->pump();
295-
}
296-
return 1;
297-
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy