From 94bbb2ef959df729497bebc980503613feb441e4 Mon Sep 17 00:00:00 2001 From: Mehmet YILMAZ Date: Tue, 22 Oct 2024 10:34:02 +0000 Subject: [PATCH] Fix Isolation Test Failure in isolation_multiuser_locking in PG17 --- .../isolation_multiuser_locking_0.out | 358 ++++++++++++++++++ .../spec/isolation_multiuser_locking.spec | 4 + 2 files changed, 362 insertions(+) create mode 100644 src/test/regress/expected/isolation_multiuser_locking_0.out diff --git a/src/test/regress/expected/isolation_multiuser_locking_0.out b/src/test/regress/expected/isolation_multiuser_locking_0.out new file mode 100644 index 00000000000..feb5d0189f0 --- /dev/null +++ b/src/test/regress/expected/isolation_multiuser_locking_0.out @@ -0,0 +1,358 @@ +Parsed test spec with 2 sessions + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-begin s2-begin s2-reindex s1-insert s2-commit s1-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s2-reindex: + REINDEX TABLE test_table; + +ERROR: permission denied for table test_table +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s2-commit: + COMMIT; + +step s1-commit: + COMMIT; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s2-reindex s1-insert s2-insert s2-commit s1-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s2-reindex: + REINDEX TABLE test_table; + +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s2-insert: + UPDATE test_table SET column2 = 2; + +step s2-commit: + COMMIT; + +step s1-insert: <... completed> +step s1-commit: + COMMIT; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s1-reindex s2-insert s1-insert s1-commit s2-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s1-reindex: + REINDEX TABLE test_table; + +step s2-insert: + UPDATE test_table SET column2 = 2; + +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s1-commit: + COMMIT; + +step s2-insert: <... completed> +step s2-commit: + COMMIT; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-begin s2-begin s2-index s1-insert s2-commit s1-commit s2-drop-index +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s2-index: + CREATE INDEX test_index ON test_table(column1); + +ERROR: must be owner of table test_table +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s2-commit: + COMMIT; + +step s1-commit: + COMMIT; + +step s2-drop-index: + DROP INDEX IF EXISTS test_index; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s2-insert s1-index s2-insert s2-commit s1-commit s1-drop-index +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s2-insert: + UPDATE test_table SET column2 = 2; + +step s1-index: + CREATE INDEX test_index ON test_table(column1); + +step s2-insert: + UPDATE test_table SET column2 = 2; + +step s2-commit: + COMMIT; + +step s1-index: <... completed> +step s1-commit: + COMMIT; + +step s1-drop-index: + DROP INDEX IF EXISTS test_index; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s1-index s2-index s1-insert s1-commit s2-commit s1-drop-index s2-drop-index +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s1-index: + CREATE INDEX test_index ON test_table(column1); + +step s2-index: + CREATE INDEX test_index ON test_table(column1); + +ERROR: must be owner of table test_table +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s1-commit: + COMMIT; + +step s2-commit: + COMMIT; + +step s1-drop-index: + DROP INDEX IF EXISTS test_index; + +step s2-drop-index: + DROP INDEX IF EXISTS test_index; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-begin s2-begin s2-truncate s1-insert s2-commit s1-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s2-truncate: + TRUNCATE test_table; + +ERROR: permission denied for table test_table +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s2-commit: + COMMIT; + +step s1-commit: + COMMIT; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s1-truncate s2-insert s1-insert s1-commit s2-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s1-truncate: + TRUNCATE test_table; + +step s2-insert: + UPDATE test_table SET column2 = 2; + +step s1-insert: + UPDATE test_table SET column2 = 1; + +step s1-commit: + COMMIT; + +step s2-insert: <... completed> +step s2-commit: + COMMIT; + + +starting permutation: s1-no-connection-cache s2-no-connection-cache s1-grant s1-begin s2-begin s1-truncate s2-truncate s1-commit s2-commit +create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +step s1-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s2-no-connection-cache: + SET citus.max_cached_conns_per_worker to 0; + +step s1-grant: + SET ROLE test_user_1; + GRANT ALL ON test_table TO test_user_2; + +step s1-begin: + BEGIN; + SET ROLE test_user_1; + +step s2-begin: + BEGIN; + SET ROLE test_user_2; + +step s1-truncate: + TRUNCATE test_table; + +step s2-truncate: + TRUNCATE test_table; + +step s1-commit: + COMMIT; + +step s2-truncate: <... completed> +step s2-commit: + COMMIT; + diff --git a/src/test/regress/spec/isolation_multiuser_locking.spec b/src/test/regress/spec/isolation_multiuser_locking.spec index 2d5c1cc0392..3b9b6dd951e 100644 --- a/src/test/regress/spec/isolation_multiuser_locking.spec +++ b/src/test/regress/spec/isolation_multiuser_locking.spec @@ -1,3 +1,7 @@ +// Two alternative test outputs: +// isolation_multiuser_locking.out for PG16 and before +// isolation_multiuser_locking_0.out for PG17 + setup { SET citus.max_cached_conns_per_worker to 0;