Hi, On Tue, Feb 27, 2024 at 11:00:10AM +0500, Andrey M. Borodin wrote: > > > > On 27 Feb 2024, at 04:29, Michael Paquier <mich...@paquier.xyz> wrote: > > > > For > > example, the test just posted here does not rely on that: > > https://www.postgresql.org/message-id/zdyzya4yrnapw...@ip-10-97-1-34.eu-west-3.compute.internal > > Instead, that test is scanning logs > > + # Note: $node_primary->wait_for_replay_catchup($node_standby) would be > + # hanging here due to the injection point, so check the log instead.+ > + my $terminated = 0; > + for (my $i = 0; $i < 10 * $PostgreSQL::Test::Utils::timeout_default; $i++) > + { > + if ($node_standby->log_contains( > + 'terminating process .* to release replication slot > \"injection_activeslot\"', $logstart)) > + { > + $terminated = 1; > + last; > + } > + usleep(100_000); > + } > > But, AFAICS, the purpose is the same: wait until event happened.
I think it's easier to understand the tests (I mean what the purpose of the injection points are) if we don't use an helper function. While the helper function would make the test easier to read / cleaner, I think it may make them more difficult to understand as 'await_injection_point' would probably be too generic. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com