Replace PGISOLATIONTIMEOUT with 2 * PG_TEST_TIMEOUT_DEFAULT.

Now that the more-generic variable exists, use it.

Discussion: https://postgr.es/m/20220219024136.GA3670392@rfd.leadboat.com
This commit is contained in:
Noah Misch 2022-07-01 18:27:50 -07:00
parent 4f4c72c2dc
commit c99c67fc43
2 changed files with 13 additions and 12 deletions

View File

@ -47,10 +47,10 @@ pg_isolation_regress is a tool similar to pg_regress, but instead of using
psql to execute a test, it uses isolationtester. It accepts all the same
command-line arguments as pg_regress.
By default, isolationtester will wait at most 300 seconds (5 minutes)
By default, isolationtester will wait at most 360 seconds (6 minutes)
for any one test step to complete. If you need to adjust this, set
the environment variable PGISOLATIONTIMEOUT to the desired timeout
in seconds.
the environment variable PG_TEST_TIMEOUT_DEFAULT to half the desired
timeout in seconds.
Test specification
@ -138,10 +138,11 @@ Each step may contain commands that block until further action has been taken
deadlock). A test that uses this ability must manually specify valid
permutations, i.e. those that would not expect a blocked session to execute a
command. If a test fails to follow that rule, isolationtester will cancel it
after PGISOLATIONTIMEOUT seconds. If the cancel doesn't work, isolationtester
will exit uncleanly after a total of twice PGISOLATIONTIMEOUT. Testing
invalid permutations should be avoided because they can make the isolation
tests take a very long time to run, and they serve no useful testing purpose.
after 2 * PG_TEST_TIMEOUT_DEFAULT seconds. If the cancel doesn't work,
isolationtester will exit uncleanly after a total of 4 *
PG_TEST_TIMEOUT_DEFAULT. Testing invalid permutations should be avoided
because they can make the isolation tests take a very long time to run, and
they serve no useful testing purpose.
Note that isolationtester recognizes that a command has blocked by looking
to see if it is shown as waiting in the pg_locks view; therefore, only

View File

@ -46,7 +46,7 @@ static int nconns = 0;
static bool any_new_notice = false;
/* Maximum time to wait before giving up on a step (in usec) */
static int64 max_step_wait = 300 * USECS_PER_SEC;
static int64 max_step_wait = 360 * USECS_PER_SEC;
static void check_testspec(TestSpec *testspec);
@ -128,12 +128,12 @@ main(int argc, char **argv)
conninfo = "dbname = postgres";
/*
* If PGISOLATIONTIMEOUT is set in the environment, adopt its value (given
* in seconds) as the max time to wait for any one step to complete.
* If PG_TEST_TIMEOUT_DEFAULT is set, adopt its value (given in seconds)
* as half the max time to wait for any one step to complete.
*/
env_wait = getenv("PGISOLATIONTIMEOUT");
env_wait = getenv("PG_TEST_TIMEOUT_DEFAULT");
if (env_wait != NULL)
max_step_wait = ((int64) atoi(env_wait)) * USECS_PER_SEC;
max_step_wait = 2 * ((int64) atoi(env_wait)) * USECS_PER_SEC;
/* Read the test spec from stdin */
spec_yyparse();