postgres.git / summary / log / commit / refs

commit    443ca97956eed7fae79ac407ff3c44dc014bc594
Author:   Andres Freund <andres@anarazel.de>
Date:     Mon May 06 06:31:58 2019 +0000
First released in: 12.0, 9.4.22, 9.5.17, 9.6.13, 10.8, 11.3

    Remove reindex_catalog test from test schedules.
    
    As the test currently causes occasional deadlocks (due to the schema
    cleanup from previous sessions potentially still running), and the
    patch from f912d7dec2 has gotten a fair bit of buildfarm coverage,
    remove the test from the test schedules. There's a set of minor
    releases coming up.
    
    Leave the tests in place, so it can manually be run using EXTRA_TESTS.
    
    For now also leave it in master, as there's no imminent release, and
    there's plenty (re-)index related work in 12. But we'll have to
    disable it before long there too, unless somebody comes up with simple
    enough fixes for the deadlock (I'm about to post a vague idea to the
    list).
    
    Discussion: https://postgr.es/m/4622.1556982247@sss.pgh.pa.us
    Backpatch: 9.4-11 (no master!)


src/test/regress/expected/reindex_catalog.out | 9 +++++++-- src/test/regress/parallel_schedule | 5 ----- src/test/regress/serial_schedule | 1 - src/test/regress/sql/reindex_catalog.sql | 9 +++++++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/test/regress/expected/reindex_catalog.out b/src/test/regress/expected/reindex_catalog.out index 142616fccbb..4b5fba49493 100644 --- a/src/test/regress/expected/reindex_catalog.out +++ b/src/test/regress/expected/reindex_catalog.out @@ -1,8 +1,8 @@ -- -- Check that system tables can be reindexed. -- --- Note that this test currently has to run without parallel tests --- being scheduled, as currently reindex catalog tables can cause +-- Note that this test currently is not included in the default +-- schedules, as currently reindexing catalog tables can cause -- deadlocks: -- -- * The lock upgrade between the ShareLock acquired for the reindex @@ -16,6 +16,11 @@ -- tables are routinely released before commit - therefore the lock -- held for reindexing doesn't guarantee that no running transaction -- performed modifications in the table underlying the index. +-- +-- This is particularly problematic as such conflicts can be +-- triggered even when run in isolation, as a previous session's +-- temporary table cleanup might still be running (even when the +-- session ended from a client perspective). -- Check reindexing of whole tables REINDEX TABLE pg_class; -- mapped, non-shared, critical REINDEX TABLE pg_index; -- non-mapped, non-shared, critical diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule index e94e5b0b0e4..eefdeeacaef 100644 --- a/src/test/regress/parallel_schedule +++ b/src/test/regress/parallel_schedule @@ -57,11 +57,6 @@ test: create_misc create_operator # These depend on the above two test: create_index create_view -# ---------- -# Has to run in isolation, due to deadlock risk -# ---------- -test: reindex_catalog - # ---------- # Another group of parallel tests # ---------- diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_schedule index e062c52fd1e..76b0de30a7a 100644 --- a/src/test/regress/serial_schedule +++ b/src/test/regress/serial_schedule @@ -65,7 +65,6 @@ test: create_misc test: create_operator test: create_index test: create_view -test: reindex_catalog test: create_aggregate test: create_function_3 test: create_cast diff --git a/src/test/regress/sql/reindex_catalog.sql b/src/test/regress/sql/reindex_catalog.sql index 2180ee5791a..87ecf52244f 100644 --- a/src/test/regress/sql/reindex_catalog.sql +++ b/src/test/regress/sql/reindex_catalog.sql @@ -1,8 +1,8 @@ -- -- Check that system tables can be reindexed. -- --- Note that this test currently has to run without parallel tests --- being scheduled, as currently reindex catalog tables can cause +-- Note that this test currently is not included in the default +-- schedules, as currently reindexing catalog tables can cause -- deadlocks: -- -- * The lock upgrade between the ShareLock acquired for the reindex @@ -16,6 +16,11 @@ -- tables are routinely released before commit - therefore the lock -- held for reindexing doesn't guarantee that no running transaction -- performed modifications in the table underlying the index. +-- +-- This is particularly problematic as such conflicts can be +-- triggered even when run in isolation, as a previous session's +-- temporary table cleanup might still be running (even when the +-- session ended from a client perspective). -- Check reindexing of whole tables [parent: 1bf4858f8634]