mirror of
https://github.com/postgres/postgres.git
synced 2026-06-21 14:39:15 -04:00
oauth: Skip call-count test for libcurl 8.20.0
The call-count test in 001_server.pl runs into a recent upstream
regression in Curl:
https://github.com/curl/curl/issues/21547
The symptom is high CPU usage on some platforms during OAuth HTTP
requests. But it looks like the fix is on track for a June 2026 release,
as part of Curl 8.21.0, so just skip the test if we happen to be using
the broken version.
Reported-by: Andrew Dunstan <andrew@dunslane.net>
Reported-by: Tom Lane <tgl@sss.pgh.pa.us>
Tested-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAOYmi%2B%3DyrwMSsHuNJ1V14isA4iSix5Xb3P3VEp1X0BS61MdV4A%40mail.gmail.com
Backpatch-through: 18
This commit is contained in:
parent
4bd477dcc6
commit
fd5ea2e9e3
1 changed files with 19 additions and 9 deletions
|
|
@ -510,17 +510,27 @@ like(
|
|||
qr@Visit https://example\.com/ and enter the code: postgresuser@,
|
||||
"call count: stderr matches");
|
||||
|
||||
my $count_pattern = qr/\[libpq\] total number of polls: (\d+)/;
|
||||
if (like($stderr, $count_pattern, "call count: count is printed"))
|
||||
SKIP:
|
||||
{
|
||||
# For reference, a typical flow with two retries might take between 5-15
|
||||
# calls to the client implementation. And while this will probably continue
|
||||
# to change across OSes and Curl updates, we're likely in trouble if we see
|
||||
# hundreds or thousands of calls.
|
||||
$stderr =~ $count_pattern;
|
||||
unless (cmp_ok($1, '<', 100, "call count is reasonably small"))
|
||||
# Curl 8.20.0 regressed this test case:
|
||||
#
|
||||
# https://github.com/curl/curl/issues/21547
|
||||
#
|
||||
skip 'call-count test is known to fail with libcurl 8.20.0', 2
|
||||
if $stderr =~ m/\Qinitialized libcurl 8.20.0\E/;
|
||||
|
||||
my $count_pattern = qr/\[libpq\] total number of polls: (\d+)/;
|
||||
if (like($stderr, $count_pattern, "call count: count is printed"))
|
||||
{
|
||||
diag "full stderr:\n$stderr";
|
||||
# For reference, a typical flow with two retries might take between 5-15
|
||||
# calls to the client implementation. And while this will probably
|
||||
# continue to change across OSes and Curl updates, we're likely in
|
||||
# trouble if we see hundreds or thousands of calls.
|
||||
$stderr =~ $count_pattern;
|
||||
unless (cmp_ok($1, '<', 100, "call count is reasonably small"))
|
||||
{
|
||||
diag "full stderr:\n$stderr";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue