mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Improve stability of tests for VACUUM (SKIP_LOCKED)
Concurrent autovacuums running with the main regression test suite could cause the tests with VACUUM (SKIP_LOCKED) to generate randomly WARNING messages. For these tests, set client_min_messages to ERROR to get rid of those random failures, as disabling autovacuum for the relations operated would not completely close the failure window. For isolation tests, disable autovacuum for the relations vacuumed with SKIP_LOCKED. The tests are designed so as LOCK commands are taken in a first session before running a concurrent VACUUM (SKIP_LOCKED) in a second to generate WARNING messages, but a concurrent autovacuum could cause the tests to be slower. Reported-by: Tom Lane Author: Michael Paquier Reviewed-by: Andres Freund, Tom Lane Discussion: https://postgr.es/m/25294.1573077278@sss.pgh.pa.us Backpatch-through: 12
This commit is contained in:
parent
2dc08bd617
commit
3db0598d90
@ -7,7 +7,9 @@ setup
|
||||
{
|
||||
CREATE TABLE parted (a INT) PARTITION BY LIST (a);
|
||||
CREATE TABLE part1 PARTITION OF parted FOR VALUES IN (1);
|
||||
ALTER TABLE part1 SET (autovacuum_enabled = false);
|
||||
CREATE TABLE part2 PARTITION OF parted FOR VALUES IN (2);
|
||||
ALTER TABLE part2 SET (autovacuum_enabled = false);
|
||||
}
|
||||
|
||||
teardown
|
||||
|
@ -196,7 +196,9 @@ ERROR: unrecognized ANALYZE option "nonexistentarg"
|
||||
LINE 1: ANALYZE (nonexistentarg) does_not_exit;
|
||||
^
|
||||
-- ensure argument order independence, and that SKIP_LOCKED on non-existing
|
||||
-- relation still errors out.
|
||||
-- relation still errors out. Suppress WARNING messages caused by concurrent
|
||||
-- autovacuums.
|
||||
SET client_min_messages TO 'ERROR';
|
||||
ANALYZE (SKIP_LOCKED, VERBOSE) does_not_exist;
|
||||
ERROR: relation "does_not_exist" does not exist
|
||||
ANALYZE (VERBOSE, SKIP_LOCKED) does_not_exist;
|
||||
@ -205,6 +207,7 @@ ERROR: relation "does_not_exist" does not exist
|
||||
VACUUM (SKIP_LOCKED) vactst;
|
||||
VACUUM (SKIP_LOCKED, FULL) vactst;
|
||||
ANALYZE (SKIP_LOCKED) vactst;
|
||||
RESET client_min_messages;
|
||||
-- ensure VACUUM and ANALYZE don't have a problem with serializable
|
||||
SET default_transaction_isolation = serializable;
|
||||
VACUUM vactst;
|
||||
|
@ -158,7 +158,9 @@ ANALYZE (nonexistent-arg) does_not_exist;
|
||||
ANALYZE (nonexistentarg) does_not_exit;
|
||||
|
||||
-- ensure argument order independence, and that SKIP_LOCKED on non-existing
|
||||
-- relation still errors out.
|
||||
-- relation still errors out. Suppress WARNING messages caused by concurrent
|
||||
-- autovacuums.
|
||||
SET client_min_messages TO 'ERROR';
|
||||
ANALYZE (SKIP_LOCKED, VERBOSE) does_not_exist;
|
||||
ANALYZE (VERBOSE, SKIP_LOCKED) does_not_exist;
|
||||
|
||||
@ -166,6 +168,7 @@ ANALYZE (VERBOSE, SKIP_LOCKED) does_not_exist;
|
||||
VACUUM (SKIP_LOCKED) vactst;
|
||||
VACUUM (SKIP_LOCKED, FULL) vactst;
|
||||
ANALYZE (SKIP_LOCKED) vactst;
|
||||
RESET client_min_messages;
|
||||
|
||||
-- ensure VACUUM and ANALYZE don't have a problem with serializable
|
||||
SET default_transaction_isolation = serializable;
|
||||
|
Loading…
x
Reference in New Issue
Block a user