Stabilize 051_effective_wal_level.pl. Several tests in 051_effective_wal_level.pl quit a background psql session that attached a local injection point and then immediately start another session that attaches the same injection point. A local injection point is detached only when its backend exits, and quitting the background psql session doesn't wait for that. So if the old backend is slow to exit, the new session fails to attach the injection point because it is still defined, and the test times out waiting for a backend to stop at it.
Fix by waiting for the old backend to disappear from pg_stat_activity view after quitting the session. Detaching the injection point before quitting isn't enough, because the exiting backend still detaches it by name and could remove the one the next session has just attached. Per buildfarm member melonworm. Reported-by: Alexander Lakhin <[email protected]> Author: Hayato Kuroda <[email protected]> Reviewed-by: Masahiko Sawada <[email protected]> Discussion: https://postgr.es/m/[email protected] Backpatch-through: 19 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/f1e25929e2ff234ee8d461b6918551943c75813a Modified Files -------------- src/test/recovery/t/051_effective_wal_level.pl | 37 +++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-)
