From 6489bc5d19dc37a0ecf3bc7d78de3c7f0de61fbd Mon Sep 17 00:00:00 2001 From: Ashwin Agrawal Date: Thu, 11 Jan 2018 01:03:22 -0800 Subject: [PATCH] isolation2: Change dbid to content-id in SQL Author: Xin Zhang Author: Jimmy Yih Author: Ashwin Agrawal --- ...d_column_after_vacuum_skip_drop_column.out | 8 +- .../commit_transaction_block_checkpoint.out | 13 +- .../master_panic_after_phase1_commit.out | 4 +- .../expected/reader_waits_for_lock.out | 8 +- .../expected/segwalrep/commit_blocking.out | 20 +-- .../segwalrep/fts_unblock_primary.out | 8 +- .../expected/segwalrep/mirror_promotion.out | 115 +++++++++--------- .../vacuum_after_vacuum_skip_drop_column.out | 8 +- .../input/uao/compaction_utility.source | 4 +- .../uao/compaction_utility_insert.source | 8 +- .../isolation2/input/uao/insert_policy.source | 8 +- .../input/uao/parallel_delete.source | 2 +- .../input/uao/parallel_update.source | 2 +- .../input/uao/select_after_vacuum.source | 4 +- .../select_while_vacuum_serializable2.source | 4 +- .../output/uao/compaction_utility.source | 4 +- .../uao/compaction_utility_insert.source | 8 +- .../output/uao/insert_policy.source | 8 +- .../output/uao/parallel_delete.source | 2 +- .../uao/parallel_delete_optimizer.source | 2 +- .../output/uao/parallel_update.source | 2 +- .../uao/parallel_update_optimizer.source | 2 +- .../output/uao/select_after_vacuum.source | 4 +- .../select_while_vacuum_serializable2.source | 4 +- ...d_column_after_vacuum_skip_drop_column.sql | 8 +- .../commit_transaction_block_checkpoint.sql | 13 +- .../sql/master_panic_after_phase1_commit.sql | 4 +- .../isolation2/sql/reader_waits_for_lock.sql | 8 +- .../sql/segwalrep/commit_blocking.sql | 20 +-- .../sql/segwalrep/fts_unblock_primary.sql | 8 +- .../sql/segwalrep/mirror_promotion.sql | 11 +- .../vacuum_after_vacuum_skip_drop_column.sql | 8 +- src/test/isolation2/sql_isolation_testcase.py | 2 +- 33 files changed, 167 insertions(+), 167 deletions(-) diff --git a/src/test/isolation2/expected/add_column_after_vacuum_skip_drop_column.out b/src/test/isolation2/expected/add_column_after_vacuum_skip_drop_column.out index 86512af370..5f31f2883a 100644 --- a/src/test/isolation2/expected/add_column_after_vacuum_skip_drop_column.out +++ b/src/test/isolation2/expected/add_column_after_vacuum_skip_drop_column.out @@ -10,7 +10,7 @@ DELETE FROM aoco_add_column_after_vacuum_skip_drop; DELETE 10 -- We should see all aocssegs in state 1 -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |1 @@ -31,7 +31,7 @@ VACUUM END -- We should see an aocsseg in state 2 (AOSEG_STATE_AWAITING_DROP) -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |2 @@ -43,7 +43,7 @@ segno|column_num|state -- The ADD COLUMN should clean up aocssegs in state 2 (AOSEG_STATE_AWAITING_DROP) 1: ALTER TABLE aoco_add_column_after_vacuum_skip_drop ADD COLUMN c INT DEFAULT 0; ALTER -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |1 @@ -57,7 +57,7 @@ segno|column_num|state -- Check if insert goes into segno 1 instead of segno 2 1: INSERT INTO aoco_add_column_after_vacuum_skip_drop SELECT i as a, i as b, i as c FROM generate_series(1, 100) AS i; INSERT 100 -2U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); segno|?column?|state -----+--------+----- 1 |t |1 diff --git a/src/test/isolation2/expected/commit_transaction_block_checkpoint.out b/src/test/isolation2/expected/commit_transaction_block_checkpoint.out index fd84cc1c4e..ea564b8ef4 100644 --- a/src/test/isolation2/expected/commit_transaction_block_checkpoint.out +++ b/src/test/isolation2/expected/commit_transaction_block_checkpoint.out @@ -19,8 +19,8 @@ BEGIN CREATE 2&: commit; --- do checkpoint on dbid 3 (segment 1) in utility mode, and it should block -3U&: checkpoint; +-- do checkpoint on segment content 1 in utility mode, and it should block +1U&: checkpoint; -- resume the 2PC after setting inCommit flag select gp_inject_fault('twophase_transaction_commit_prepared', 'reset', 3); @@ -30,7 +30,7 @@ t (1 row) 2<: <... completed> COMMIT -3U<: <... completed> +1U<: <... completed> CHECKPOINT -- TEST 2: block checkpoint on master @@ -52,8 +52,8 @@ BEGIN DROP 2&: commit; --- do checkpoint on dbid 1 (master) in utility mode, and it should block -1U&: checkpoint; +-- do checkpoint on master in utility mode, and it should block +-1U&: checkpoint; -- resume the 2PC select gp_inject_fault('onephase_transaction_commit', 'reset', 1); @@ -63,6 +63,5 @@ t (1 row) 2<: <... completed> COMMIT -1U<: <... completed> +-1U<: <... completed> CHECKPOINT - diff --git a/src/test/isolation2/expected/master_panic_after_phase1_commit.out b/src/test/isolation2/expected/master_panic_after_phase1_commit.out index bd2ecfa4f7..b98d3562eb 100644 --- a/src/test/isolation2/expected/master_panic_after_phase1_commit.out +++ b/src/test/isolation2/expected/master_panic_after_phase1_commit.out @@ -34,7 +34,7 @@ gp_inject_fault t (1 row) -- create utility session to segment which will be used to reset the fault -2U: SELECT 1; +0U: SELECT 1; ?column? -------- 1 @@ -48,7 +48,7 @@ server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. -- Reset the fault using utility mode connection -2U: SELECT gp_inject_fault('finish_prepared_start_of_function', 'reset', 2); +0U: SELECT gp_inject_fault('finish_prepared_start_of_function', 'reset', 2); gp_inject_fault --------------- t diff --git a/src/test/isolation2/expected/reader_waits_for_lock.out b/src/test/isolation2/expected/reader_waits_for_lock.out index 65e3eff92d..6fee6f8743 100644 --- a/src/test/isolation2/expected/reader_waits_for_lock.out +++ b/src/test/isolation2/expected/reader_waits_for_lock.out @@ -10,19 +10,19 @@ INSERT 1 -- save session id 1: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a); CREATE 1 -2U: BEGIN; +0U: BEGIN; BEGIN -2U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE; +0U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE; LOCK -- creates reader and writer gang 1&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b; -- all processes in the session 1 should be blocked -2U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid); +0U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid); all_waiting ----------- t (1 row) -2U: COMMIT; +0U: COMMIT; COMMIT 1<: <... completed> a|b diff --git a/src/test/isolation2/expected/segwalrep/commit_blocking.out b/src/test/isolation2/expected/segwalrep/commit_blocking.out index 92dfb96614..9db6681417 100644 --- a/src/test/isolation2/expected/segwalrep/commit_blocking.out +++ b/src/test/isolation2/expected/segwalrep/commit_blocking.out @@ -19,7 +19,7 @@ content|role|preferred_role|mode|status (2 rows) -- print synchronous_standby_names should be set to '*' at start of test -2U: show synchronous_standby_names; +0U: show synchronous_standby_names; synchronous_standby_names ------------------------- * @@ -46,7 +46,7 @@ t ! gpconfig -c gp_fts_probe_pause -v true --masteronly --skipvalidation; 20180104:13:17:57:019143 gpconfig:station1:csteam-[INFO]:-completed successfully with parameters '-c gp_fts_probe_pause -v true --masteronly --skipvalidation' -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); pg_ctl ---------------- server signaled @@ -54,17 +54,17 @@ server signaled (1 row) -- stop a mirror and show commit on dbid 2 will block -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'stop', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'stop', NULL, NULL); pg_ctl ---------------------------------------------------- waiting for server to shut down done server stopped (1 row) -2U&: insert into segwalrep_commit_blocking values (1); +0U&: insert into segwalrep_commit_blocking values (1); -- restart primary dbid 2 -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=0), 'restart', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=0), 'restart', NULL, NULL); pg_ctl ---------------------------------------------------------------------------------------------------- waiting for server to shut down done @@ -75,14 +75,14 @@ server started (1 row) -- should show dbid 2 utility mode connection closed because of primary restart -2U<: <... completed> +0U<: <... completed> server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. -2Uq: ... +0Uq: ... -- synchronous_standby_names should be set to '*' after primary restart -2U: show synchronous_standby_names; +0U: show synchronous_standby_names; synchronous_standby_names ------------------------- * @@ -100,7 +100,7 @@ INSERT 1 INSERT 1 -- bring the mirror back up -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'start', (select port from gp_segment_configuration where content = 0 and preferred_role = 'm'), 0); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'start', (select port from gp_segment_configuration where content = 0 and preferred_role = 'm'), 0); pg_ctl ---------------- server starting @@ -115,7 +115,7 @@ COMMIT ! gpconfig -c gp_fts_probe_pause -v false --masteronly --skipvalidation; 20180104:13:18:02:019373 gpconfig:station1:csteam-[INFO]:-completed successfully with parameters '-c gp_fts_probe_pause -v false --masteronly --skipvalidation' -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); pg_ctl ---------------- server signaled diff --git a/src/test/isolation2/expected/segwalrep/fts_unblock_primary.out b/src/test/isolation2/expected/segwalrep/fts_unblock_primary.out index 2522dead07..47033d1250 100644 --- a/src/test/isolation2/expected/segwalrep/fts_unblock_primary.out +++ b/src/test/isolation2/expected/segwalrep/fts_unblock_primary.out @@ -41,7 +41,7 @@ INSERT 1 ! gpconfig -c gp_fts_probe_pause -v true --masteronly --skipvalidation; completed successfully with parameters '-c gp_fts_probe_pause -v true --masteronly --skipvalidation' -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); pg_ctl ---------------- server signaled @@ -49,7 +49,7 @@ server signaled (1 row) -- stop a mirror -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'stop', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'stop', NULL, NULL); pg_ctl ---------------------------------------------------- waiting for server to shut down done @@ -72,7 +72,7 @@ INSERT 1 ! gpconfig -c gp_fts_probe_pause -v false --masteronly --skipvalidation; completed successfully with parameters '-c gp_fts_probe_pause -v false --masteronly --skipvalidation' -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); pg_ctl ---------------- server signaled @@ -104,7 +104,7 @@ synchronous_standby_names (1 row) -- bring the mirror back up and see primary s/u and mirror s/u -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'start', (select port from gp_segment_configuration where content = 2 and preferred_role = 'm'), 2); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'start', (select port from gp_segment_configuration where content = 2 and preferred_role = 'm'), 2); pg_ctl ---------------- server starting diff --git a/src/test/isolation2/expected/segwalrep/mirror_promotion.out b/src/test/isolation2/expected/segwalrep/mirror_promotion.out index eb4a3da278..05fc07725c 100644 --- a/src/test/isolation2/expected/segwalrep/mirror_promotion.out +++ b/src/test/isolation2/expected/segwalrep/mirror_promotion.out @@ -33,63 +33,65 @@ content|preferred_role|role|status|mode 0 |m |p |u |n (2 rows) --- wait for dbid 5 (mirror for content 0) to finish the promotion -5U: select 1; +-- wait for content 0 (earlier mirror, now primary) to finish the promotion +0U: select 1; ?column? -------- 1 (1 row) +-- Quit this utility mode session, as need to start fresh one below +0Uq: ... -- fully recover the failed primary as new mirror !\retcode ../../../gpAux/gpdemo/gpsegwalrep.py recoverfull; -- start_ignore -2018-01-08 16:00:58.097007: fetching cluster configuration -2018-01-08 16:00:58.104765: fetched cluster configuration +2018-01-10 23:42:04.312398: fetching cluster configuration +2018-01-10 23:42:04.405057: fetched cluster configuration found 3 distinct content IDs -Mirror content 0: 2018-01-08 16:00:58.129024: Running command... rm -rf /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 +Mirror content 0: 2018-01-10 23:42:04.423853: Running command... rm -rf /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 Mirror content 0: -Mirror content 0: 2018-01-08 16:00:58.174251: Running command... pg_basebackup -x -R -c fast -E ./pg_log -E ./db_dumps -E ./gpperfmon/data -E ./gpperfmon/logs -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 -h localhost -p 25435 +Mirror content 0: 2018-01-10 23:42:04.508628: Running command... pg_basebackup -x -R -c fast -E ./pg_log -E ./db_dumps -E ./gpperfmon/data -E ./gpperfmon/logs -D /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 -h 127.0.0.1 -p 25435 Mirror content 0: NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup Mirror content 0: -Mirror content 0: 2018-01-08 16:00:58.804815: Running command... mkdir /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0/pg_log; mkdir /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0/pg_xlog/archive_status +Mirror content 0: 2018-01-10 23:42:05.009465: Running command... mkdir /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0/pg_log; mkdir /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0/pg_xlog/archive_status Mirror content 0: -Mirror content 0: 2018-01-08 16:00:58.812926: Initialized mirror at /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 +Mirror content 0: 2018-01-10 23:42:05.020184: Initialized mirror at /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 -Segment primary content 0: 2018-01-08 16:00:58.813229: Running command... pg_ctl -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 -o '-p 25432 --gp_dbid=0 --silent-mode=true -i -M mirrorless --gp_contentid=0 --gp_num_contents_in_cluster=3' start +Segment primary content 0: 2018-01-10 23:42:05.020494: Running command... pg_ctl -D /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 -o '-p 25432 --gp_dbid=0 --silent-mode=true -i -M mirrorless --gp_contentid=0 --gp_num_contents_in_cluster=3' start Segment primary content 0: server starting Segment primary content 0: -Segment primary content 0: 2018-01-08 16:00:58.846892: Running command... pg_ctl -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 status -Segment primary content 0: pg_ctl: server is running (PID: 4006) +Segment primary content 0: 2018-01-10 23:42:05.048563: Running command... pg_ctl -D /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 status +Segment primary content 0: pg_ctl: server is running (PID: 35912) Segment primary content 0: -Segment primary content 0: 2018-01-08 16:00:58.849761: Started primary segment with content 0 and port 25432 at /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 +Segment primary content 0: 2018-01-10 23:42:05.055839: Started primary segment with content 0 and port 25432 at /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 -Force FTS probe scan: 2018-01-08 16:00:58.849919: Running command... psql postgres -c "SELECT gp_request_fts_probe_scan()" +Force FTS probe scan: 2018-01-10 23:42:05.056015: Running command... psql postgres -c "SELECT gp_request_fts_probe_scan()" Force FTS probe scan: gp_request_fts_probe_scan Force FTS probe scan: --------------------------- Force FTS probe scan: t Force FTS probe scan: (1 row) Force FTS probe scan: Force FTS probe scan: -Force FTS probe scan: 2018-01-08 16:00:59.914176: FTS probe refreshed catalog +Force FTS probe scan: 2018-01-10 23:42:06.088302: FTS probe refreshed catalog -2018-01-08 16:00:59.914229: fetching cluster configuration -2018-01-08 16:00:59.924334: fetched cluster configuration +2018-01-10 23:42:06.088478: fetching cluster configuration +2018-01-10 23:42:06.179366: fetched cluster configuration found 3 distinct content IDs -: 2018-01-08 16:00:59.937801: Running command... psql postgres -c "select * from gp_segment_configuration order by content, dbid" -: dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir -: ------+---------+------+----------------+------+--------+-------+-------------+-------------+------------------------------------------------------------------------------- -: 1 | -1 | p | p | n | u | 15432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/qddir/demoDataDir-1 -: 8 | -1 | m | m | s | u | 16432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/standby -: 2 | 0 | m | p | s | u | 25432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 -: 5 | 0 | p | m | s | u | 25435 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 -: 3 | 1 | p | p | s | u | 25433 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast2/demoDataDir1 -: 6 | 1 | m | m | s | u | 25436 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror2/demoDataDir1 -: 4 | 2 | p | p | s | u | 25434 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast3/demoDataDir2 -: 7 | 2 | m | m | s | u | 25437 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror3/demoDataDir2 +: 2018-01-10 23:42:06.189714: Running command... psql postgres -c "select * from gp_segment_configuration order by content, dbid" +: dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir +: ------+---------+------+----------------+------+--------+-------+-------------------+-------------------+-------------------------------------------------------------- +: 1 | -1 | p | p | n | u | 15432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/qddir/demoDataDir-1 +: 8 | -1 | m | m | s | u | 16432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/standby +: 2 | 0 | m | p | s | u | 25432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 +: 5 | 0 | p | m | s | u | 25435 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 +: 3 | 1 | p | p | s | u | 25433 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast2/demoDataDir1 +: 7 | 1 | m | m | s | u | 25436 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror2/demoDataDir1 +: 4 | 2 | p | p | s | u | 25434 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast3/demoDataDir2 +: 6 | 2 | m | m | s | u | 25437 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror3/demoDataDir2 : (8 rows) : : -: 2018-01-08 16:00:59.950212: +: 2018-01-10 23:42:06.205890: -- end_ignore @@ -127,8 +129,8 @@ content|preferred_role|role|status|mode 0 |p |p |u |n (2 rows) --- wait for dbid 2 (primary for content 0) finish promotion -2U: select 1; +-- wait for content 0 (earlier mirror, now primary) to finish the promotion +0U: select 1; ?column? -------- 1 @@ -137,53 +139,53 @@ content|preferred_role|role|status|mode -- now, let's fully recover the mirror !\retcode ../../../gpAux/gpdemo/gpsegwalrep.py recoverfull; -- start_ignore -2018-01-08 16:01:06.212959: fetching cluster configuration -2018-01-08 16:01:06.218760: fetched cluster configuration +2018-01-10 23:42:12.624505: fetching cluster configuration +2018-01-10 23:42:12.717571: fetched cluster configuration found 3 distinct content IDs -Mirror content 0: 2018-01-08 16:01:06.233588: Running command... rm -rf /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 +Mirror content 0: 2018-01-10 23:42:12.733807: Running command... rm -rf /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 Mirror content 0: -Mirror content 0: 2018-01-08 16:01:06.288272: Running command... pg_basebackup -x -R -c fast -E ./pg_log -E ./db_dumps -E ./gpperfmon/data -E ./gpperfmon/logs -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 -h localhost -p 25432 +Mirror content 0: 2018-01-10 23:42:12.830415: Running command... pg_basebackup -x -R -c fast -E ./pg_log -E ./db_dumps -E ./gpperfmon/data -E ./gpperfmon/logs -D /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 -h 127.0.0.1 -p 25432 Mirror content 0: NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup Mirror content 0: -Mirror content 0: 2018-01-08 16:01:06.726959: Running command... mkdir /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0/pg_log; mkdir /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0/pg_xlog/archive_status +Mirror content 0: 2018-01-10 23:42:14.326265: Running command... mkdir /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0/pg_log; mkdir /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0/pg_xlog/archive_status Mirror content 0: -Mirror content 0: 2018-01-08 16:01:06.732329: Initialized mirror at /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 +Mirror content 0: 2018-01-10 23:42:14.335604: Initialized mirror at /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 -Segment mirror content 0: 2018-01-08 16:01:06.732833: Running command... pg_ctl -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 -o '-p 25435 --gp_dbid=0 --silent-mode=true -i -M mirrorless --gp_contentid=0 --gp_num_contents_in_cluster=3' start +Segment mirror content 0: 2018-01-10 23:42:14.335990: Running command... pg_ctl -D /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 -o '-p 25435 --gp_dbid=0 --silent-mode=true -i -M mirrorless --gp_contentid=0 --gp_num_contents_in_cluster=3' start Segment mirror content 0: server starting Segment mirror content 0: -Segment mirror content 0: 2018-01-08 16:01:06.765965: Running command... pg_ctl -D /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 status -Segment mirror content 0: pg_ctl: server is running (PID: 4285) +Segment mirror content 0: 2018-01-10 23:42:14.362829: Running command... pg_ctl -D /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 status +Segment mirror content 0: pg_ctl: server is running (PID: 35968) Segment mirror content 0: -Segment mirror content 0: 2018-01-08 16:01:06.769486: Started mirror segment with content 0 and port 25435 at /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 +Segment mirror content 0: 2018-01-10 23:42:14.370174: Started mirror segment with content 0 and port 25435 at /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 -Force FTS probe scan: 2018-01-08 16:01:06.769688: Running command... psql postgres -c "SELECT gp_request_fts_probe_scan()" +Force FTS probe scan: 2018-01-10 23:42:14.370351: Running command... psql postgres -c "SELECT gp_request_fts_probe_scan()" Force FTS probe scan: gp_request_fts_probe_scan Force FTS probe scan: --------------------------- Force FTS probe scan: t Force FTS probe scan: (1 row) Force FTS probe scan: Force FTS probe scan: -Force FTS probe scan: 2018-01-08 16:01:07.836626: FTS probe refreshed catalog +Force FTS probe scan: 2018-01-10 23:42:15.399794: FTS probe refreshed catalog -2018-01-08 16:01:07.836704: fetching cluster configuration -2018-01-08 16:01:07.846714: fetched cluster configuration +2018-01-10 23:42:15.399942: fetching cluster configuration +2018-01-10 23:42:15.492766: fetched cluster configuration found 3 distinct content IDs -: 2018-01-08 16:01:07.859669: Running command... psql postgres -c "select * from gp_segment_configuration order by content, dbid" -: dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir -: ------+---------+------+----------------+------+--------+-------+-------------+-------------+------------------------------------------------------------------------------- -: 1 | -1 | p | p | n | u | 15432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/qddir/demoDataDir-1 -: 8 | -1 | m | m | s | u | 16432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/standby -: 2 | 0 | p | p | s | u | 25432 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0 -: 5 | 0 | m | m | s | u | 25435 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0 -: 3 | 1 | p | p | s | u | 25433 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast2/demoDataDir1 -: 6 | 1 | m | m | s | u | 25436 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror2/demoDataDir1 -: 4 | 2 | p | p | s | u | 25434 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast3/demoDataDir2 -: 7 | 2 | m | m | s | u | 25437 | xzhang-iMac | xzhang-iMac | /home/xzhang/workspace/gpdb/gpAux/gpdemo/datadirs/dbfast_mirror3/demoDataDir2 +: 2018-01-10 23:42:15.503241: Running command... psql postgres -c "select * from gp_segment_configuration order by content, dbid" +: dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir +: ------+---------+------+----------------+------+--------+-------+-------------------+-------------------+-------------------------------------------------------------- +: 1 | -1 | p | p | n | u | 15432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/qddir/demoDataDir-1 +: 8 | -1 | m | m | s | u | 16432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/standby +: 2 | 0 | p | p | s | u | 25432 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast1/demoDataDir0 +: 5 | 0 | m | m | s | u | 25435 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror1/demoDataDir0 +: 3 | 1 | p | p | s | u | 25433 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast2/demoDataDir1 +: 7 | 1 | m | m | s | u | 25436 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror2/demoDataDir1 +: 4 | 2 | p | p | s | u | 25434 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast3/demoDataDir2 +: 6 | 2 | m | m | s | u | 25437 | ashwins-mac.local | ashwins-mac.local | /Users/aagrawal/workspace/gpdata/dbfast_mirror3/demoDataDir2 : (8 rows) : : -: 2018-01-08 16:01:07.873428: +: 2018-01-10 23:42:15.519589: -- end_ignore @@ -197,4 +199,3 @@ content|preferred_role|role|status|mode 0 |p |p |u |s 0 |m |m |u |s (2 rows) - diff --git a/src/test/isolation2/expected/vacuum_after_vacuum_skip_drop_column.out b/src/test/isolation2/expected/vacuum_after_vacuum_skip_drop_column.out index 06046063c4..b04898e1e3 100644 --- a/src/test/isolation2/expected/vacuum_after_vacuum_skip_drop_column.out +++ b/src/test/isolation2/expected/vacuum_after_vacuum_skip_drop_column.out @@ -10,7 +10,7 @@ DELETE FROM aoco_vacuum_after_vacuum_skip_drop; DELETE 10 -- We should see all aocssegs in state 1 -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |1 @@ -31,7 +31,7 @@ VACUUM END -- We should see an aocsseg in state 2 (AOSEG_STATE_AWAITING_DROP) -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |2 @@ -43,7 +43,7 @@ segno|column_num|state -- The VACUUM should clean up aocssegs in state 2 (AOSEG_STATE_AWAITING_DROP) 1: VACUUM aoco_vacuum_after_vacuum_skip_drop; VACUUM -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); segno|column_num|state -----+----------+----- 1 |0 |1 @@ -55,7 +55,7 @@ segno|column_num|state -- Check if insert goes into segno 1 instead of segno 2 1: INSERT INTO aoco_vacuum_after_vacuum_skip_drop SELECT i as a, i as b FROM generate_series(1, 100) AS i; INSERT 100 -2U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); segno|?column?|state -----+--------+----- 1 |t |1 diff --git a/src/test/isolation2/input/uao/compaction_utility.source b/src/test/isolation2/input/uao/compaction_utility.source index 50c2f5b0f9..8887e8cd06 100644 --- a/src/test/isolation2/input/uao/compaction_utility.source +++ b/src/test/isolation2/input/uao/compaction_utility.source @@ -7,6 +7,6 @@ INSERT INTO foo SELECT i as a, 1 as b, 'hello world' as c FROM generate_series(1 DELETE FROM foo WHERE a < 20; SELECT COUNT(*) FROM foo; -2U: VACUUM foo; +0U: VACUUM foo; SELECT COUNT(*) FROM foo; -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('foo'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('foo'); diff --git a/src/test/isolation2/input/uao/compaction_utility_insert.source b/src/test/isolation2/input/uao/compaction_utility_insert.source index eb3d90caef..b8f94d69d0 100644 --- a/src/test/isolation2/input/uao/compaction_utility_insert.source +++ b/src/test/isolation2/input/uao/compaction_utility_insert.source @@ -6,13 +6,13 @@ CREATE INDEX foo_index ON foo(b); INSERT INTO foo VALUES (1, 1, 'c'); SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo'); -2U: INSERT INTO foo VALUES (2, 2, 'c'); -2U: INSERT INTO foo VALUES (3, 3, 'c'); -2U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; +0U: INSERT INTO foo VALUES (2, 2, 'c'); +0U: INSERT INTO foo VALUES (3, 3, 'c'); +0U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; -- We know that the master does update its tupcount yet SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo'); DELETE FROM foo WHERE a = 2; UPDATE foo SET b = -1 WHERE a = 3; VACUUM foo; -2U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; +0U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo'); diff --git a/src/test/isolation2/input/uao/insert_policy.source b/src/test/isolation2/input/uao/insert_policy.source index 05bb0e08c2..b978ddd2ac 100644 --- a/src/test/isolation2/input/uao/insert_policy.source +++ b/src/test/isolation2/input/uao/insert_policy.source @@ -131,16 +131,16 @@ CREATE TABLE ao (a INT) WITH (appendonly=true, orientation=@orientation@); -- Actual test begins 1: INSERT INTO AO VALUES (1); -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); 1: INSERT INTO AO VALUES (2); -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); 1: BEGIN; 1: INSERT INTO AO VALUES (2); 2: BEGIN; 2: INSERT INTO AO VALUES (2); 1: COMMIT; 2: COMMIT; -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); 1: insert into ao select generate_series(1,100000); 1: INSERT INTO AO VALUES (2); -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); diff --git a/src/test/isolation2/input/uao/parallel_delete.source b/src/test/isolation2/input/uao/parallel_delete.source index f5e46f8a62..71f5c426e2 100644 --- a/src/test/isolation2/input/uao/parallel_delete.source +++ b/src/test/isolation2/input/uao/parallel_delete.source @@ -18,4 +18,4 @@ insert into ao select generate_series(1,100); 3: BEGIN; 3: SELECT * FROM ao WHERE a < 5 ORDER BY a; 3: COMMIT; -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); diff --git a/src/test/isolation2/input/uao/parallel_update.source b/src/test/isolation2/input/uao/parallel_update.source index 964841a954..c93ee15fb1 100644 --- a/src/test/isolation2/input/uao/parallel_update.source +++ b/src/test/isolation2/input/uao/parallel_update.source @@ -16,4 +16,4 @@ INSERT INTO ao SELECT i as a, i as b FROM generate_series(1,10) AS i; 1<: 1: COMMIT; 3: SELECT * FROM ao WHERE a < 5 ORDER BY a; -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); diff --git a/src/test/isolation2/input/uao/select_after_vacuum.source b/src/test/isolation2/input/uao/select_after_vacuum.source index e2ef25ff4b..72b27d115e 100644 --- a/src/test/isolation2/input/uao/select_after_vacuum.source +++ b/src/test/isolation2/input/uao/select_after_vacuum.source @@ -31,7 +31,7 @@ insert into ao2 select generate_series(1,1000); DELETE FROM ao WHERE a < 128; 1: BEGIN; 1: SELECT COUNT(*) FROM ao2; -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); 2: VACUUM ao; 1: SELECT COUNT(*) FROM ao; 1: SELECT * FROM locktest_master WHERE coalesce = 'ao'; @@ -39,4 +39,4 @@ DELETE FROM ao WHERE a < 128; 1: COMMIT; 1: SELECT COUNT(*) FROM ao; 3: INSERT INTO ao VALUES (0); -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); diff --git a/src/test/isolation2/input/uao/select_while_vacuum_serializable2.source b/src/test/isolation2/input/uao/select_while_vacuum_serializable2.source index 437a62d25c..a1f6ddfcd0 100644 --- a/src/test/isolation2/input/uao/select_while_vacuum_serializable2.source +++ b/src/test/isolation2/input/uao/select_while_vacuum_serializable2.source @@ -27,9 +27,9 @@ insert into ao select generate_series(1,1000); DELETE FROM ao WHERE a < 128; 1: BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; 1: SELECT COUNT(*) FROM ao; -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); 2: VACUUM ao; 1: SELECT COUNT(*) FROM ao; 1: COMMIT; 3: INSERT INTO ao VALUES (0); -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); diff --git a/src/test/isolation2/output/uao/compaction_utility.source b/src/test/isolation2/output/uao/compaction_utility.source index 70f183ceb1..e6f743d591 100644 --- a/src/test/isolation2/output/uao/compaction_utility.source +++ b/src/test/isolation2/output/uao/compaction_utility.source @@ -16,14 +16,14 @@ count ----- 81 (1 row) -2U: VACUUM foo; +0U: VACUUM foo; VACUUM SELECT COUNT(*) FROM foo; count ----- 81 (1 row) -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('foo'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('foo'); segno|case -----+---- 0 |many diff --git a/src/test/isolation2/output/uao/compaction_utility_insert.source b/src/test/isolation2/output/uao/compaction_utility_insert.source index b5fb138d34..79ebd0df24 100644 --- a/src/test/isolation2/output/uao/compaction_utility_insert.source +++ b/src/test/isolation2/output/uao/compaction_utility_insert.source @@ -14,11 +14,11 @@ segno|tupcount|state -----+--------+----- 1 |1 |1 (1 row) -2U: INSERT INTO foo VALUES (2, 2, 'c'); +0U: INSERT INTO foo VALUES (2, 2, 'c'); INSERT 1 -2U: INSERT INTO foo VALUES (3, 3, 'c'); +0U: INSERT INTO foo VALUES (3, 3, 'c'); INSERT 1 -2U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; +0U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; segno|tupcount|state -----+--------+----- 0 |2 |1 @@ -35,7 +35,7 @@ UPDATE foo SET b = -1 WHERE a = 3; UPDATE 1 VACUUM foo; VACUUM -2U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; +0U: SELECT segno, tupcount, state FROM gp_ao_or_aocs_seg_name('foo') where segno = 0; segno|tupcount|state -----+--------+----- 0 |0 |1 diff --git a/src/test/isolation2/output/uao/insert_policy.source b/src/test/isolation2/output/uao/insert_policy.source index fcd263701f..d6cc0cbd25 100644 --- a/src/test/isolation2/output/uao/insert_policy.source +++ b/src/test/isolation2/output/uao/insert_policy.source @@ -260,14 +260,14 @@ INSERT 1 -- Actual test begins 1: INSERT INTO AO VALUES (1); INSERT 1 -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); segno|tupcount -----+-------- 1 |127 (1 row) 1: INSERT INTO AO VALUES (2); INSERT 1 -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); segno|tupcount -----+-------- 1 |128 @@ -284,7 +284,7 @@ INSERT 1 COMMIT 2: COMMIT; COMMIT -2U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, tupcount FROM gp_ao_or_aocs_seg_name('ao'); segno|tupcount -----+-------- 1 |129 @@ -294,7 +294,7 @@ segno|tupcount INSERT 100000 1: INSERT INTO AO VALUES (2); INSERT 1 -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); segno|case -----+---- 1 |many diff --git a/src/test/isolation2/output/uao/parallel_delete.source b/src/test/isolation2/output/uao/parallel_delete.source index 821f1aea45..6b8ba720b7 100644 --- a/src/test/isolation2/output/uao/parallel_delete.source +++ b/src/test/isolation2/output/uao/parallel_delete.source @@ -43,7 +43,7 @@ a (2 rows) 3: COMMIT; COMMIT -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); tid |segno|row_num ----------------+-----+------- (33554432,32769)|1 |1 diff --git a/src/test/isolation2/output/uao/parallel_delete_optimizer.source b/src/test/isolation2/output/uao/parallel_delete_optimizer.source index b3019fcbd4..f9ed8851ff 100644 --- a/src/test/isolation2/output/uao/parallel_delete_optimizer.source +++ b/src/test/isolation2/output/uao/parallel_delete_optimizer.source @@ -45,7 +45,7 @@ a (2 rows) 3: COMMIT; COMMIT -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); tid |segno|row_num ----------------+-----+------- (33554432,32769)|1 |1 diff --git a/src/test/isolation2/output/uao/parallel_update.source b/src/test/isolation2/output/uao/parallel_update.source index 3c59f7dee6..adc9bb4c48 100644 --- a/src/test/isolation2/output/uao/parallel_update.source +++ b/src/test/isolation2/output/uao/parallel_update.source @@ -42,7 +42,7 @@ a|b 3|3 4|4 (4 rows) -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); tid |segno|row_num ----------------+-----+------- (33554432,32769)|1 |1 diff --git a/src/test/isolation2/output/uao/parallel_update_optimizer.source b/src/test/isolation2/output/uao/parallel_update_optimizer.source index 5ecbb9fef6..111aee9354 100644 --- a/src/test/isolation2/output/uao/parallel_update_optimizer.source +++ b/src/test/isolation2/output/uao/parallel_update_optimizer.source @@ -44,7 +44,7 @@ a|b 3|3 4|4 (4 rows) -2U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); +0U: SELECT * FROM gp_toolkit.__gp_aovisimap_name('ao'); tid |segno|row_num ----------------+-----+------- (33554432,32769)|1 |1 diff --git a/src/test/isolation2/output/uao/select_after_vacuum.source b/src/test/isolation2/output/uao/select_after_vacuum.source index 1e6d90be5f..488cc68c0d 100644 --- a/src/test/isolation2/output/uao/select_after_vacuum.source +++ b/src/test/isolation2/output/uao/select_after_vacuum.source @@ -63,7 +63,7 @@ count ----- 1000 (1 row) -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); segno|case -----+---- 1 |many @@ -94,7 +94,7 @@ count (1 row) 3: INSERT INTO ao VALUES (0); INSERT 1 -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); segno|case -----+---- 1 |one diff --git a/src/test/isolation2/output/uao/select_while_vacuum_serializable2.source b/src/test/isolation2/output/uao/select_while_vacuum_serializable2.source index d41fce86fb..3235cf4e69 100644 --- a/src/test/isolation2/output/uao/select_while_vacuum_serializable2.source +++ b/src/test/isolation2/output/uao/select_while_vacuum_serializable2.source @@ -56,7 +56,7 @@ count ----- 18333 (1 row) -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); segno|case -----+---- 1 |many @@ -72,7 +72,7 @@ count COMMIT 3: INSERT INTO ao VALUES (0); INSERT 1 -2U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); +0U: SELECT segno, case when tupcount = 0 then 'zero' when tupcount = 1 then 'one' when tupcount <= 5 then 'few' else 'many' end FROM gp_ao_or_aocs_seg_name('ao'); segno|case -----+---- 1 |many diff --git a/src/test/isolation2/sql/add_column_after_vacuum_skip_drop_column.sql b/src/test/isolation2/sql/add_column_after_vacuum_skip_drop_column.sql index 09bbb238ea..81419ea919 100644 --- a/src/test/isolation2/sql/add_column_after_vacuum_skip_drop_column.sql +++ b/src/test/isolation2/sql/add_column_after_vacuum_skip_drop_column.sql @@ -7,7 +7,7 @@ INSERT INTO aoco_add_column_after_vacuum_skip_drop SELECT i as a, i as b FROM ge DELETE FROM aoco_add_column_after_vacuum_skip_drop; -- We should see all aocssegs in state 1 -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); -- VACUUM while another session holds lock 1: BEGIN; @@ -16,12 +16,12 @@ DELETE FROM aoco_add_column_after_vacuum_skip_drop; 1: END; -- We should see an aocsseg in state 2 (AOSEG_STATE_AWAITING_DROP) -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); -- The ADD COLUMN should clean up aocssegs in state 2 (AOSEG_STATE_AWAITING_DROP) 1: ALTER TABLE aoco_add_column_after_vacuum_skip_drop ADD COLUMN c INT DEFAULT 0; -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); -- Check if insert goes into segno 1 instead of segno 2 1: INSERT INTO aoco_add_column_after_vacuum_skip_drop SELECT i as a, i as b, i as c FROM generate_series(1, 100) AS i; -2U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); +0U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_add_column_after_vacuum_skip_drop'); diff --git a/src/test/isolation2/sql/commit_transaction_block_checkpoint.sql b/src/test/isolation2/sql/commit_transaction_block_checkpoint.sql index a633a62926..e86df81f5a 100644 --- a/src/test/isolation2/sql/commit_transaction_block_checkpoint.sql +++ b/src/test/isolation2/sql/commit_transaction_block_checkpoint.sql @@ -11,13 +11,13 @@ select gp_inject_fault('twophase_transaction_commit_prepared', 'suspend', 3); 2: create table t_commit_transaction_block_checkpoint (c int) distributed by (c); 2&: commit; --- do checkpoint on dbid 3 (segment 1) in utility mode, and it should block -3U&: checkpoint; +-- do checkpoint on segment content 1 in utility mode, and it should block +1U&: checkpoint; -- resume the 2PC after setting inCommit flag select gp_inject_fault('twophase_transaction_commit_prepared', 'reset', 3); 2<: -3U<: +1U<: -- TEST 2: block checkpoint on master @@ -31,11 +31,10 @@ select gp_inject_fault('onephase_transaction_commit', 'suspend', 1); 2: drop table t_commit_transaction_block_checkpoint; 2&: commit; --- do checkpoint on dbid 1 (master) in utility mode, and it should block -1U&: checkpoint; +-- do checkpoint on master in utility mode, and it should block +-1U&: checkpoint; -- resume the 2PC select gp_inject_fault('onephase_transaction_commit', 'reset', 1); 2<: -1U<: - +-1U<: diff --git a/src/test/isolation2/sql/master_panic_after_phase1_commit.sql b/src/test/isolation2/sql/master_panic_after_phase1_commit.sql index f014be1bf5..4d7d652553 100644 --- a/src/test/isolation2/sql/master_panic_after_phase1_commit.sql +++ b/src/test/isolation2/sql/master_panic_after_phase1_commit.sql @@ -36,13 +36,13 @@ $$ LANGUAGE plpgsql; -- Inject fault to fail the COMMIT PREPARED always on one segment, till fault is not reset 1: SELECT gp_inject_fault('finish_prepared_start_of_function', 'error', '', '', '', -1, 0, 2); -- create utility session to segment which will be used to reset the fault -2U: SELECT 1; +0U: SELECT 1; -- Start looping in background, till master panics and closes the session 3&: SELECT wait_till_master_shutsdown(); -- Start transaction which should hit PANIC as COMMIT PREPARED will fail to one segment 1: CREATE TABLE commit_phase1_panic(a int, b int); -- Reset the fault using utility mode connection -2U: SELECT gp_inject_fault('finish_prepared_start_of_function', 'reset', 2); +0U: SELECT gp_inject_fault('finish_prepared_start_of_function', 'reset', 2); -- Join back to know master has completed postmaster reset. 3<: -- Start a session on master which would complete the DTM recovery and hence COMMIT PREPARED diff --git a/src/test/isolation2/sql/reader_waits_for_lock.sql b/src/test/isolation2/sql/reader_waits_for_lock.sql index 0d711e8c6f..f99cb573f4 100644 --- a/src/test/isolation2/sql/reader_waits_for_lock.sql +++ b/src/test/isolation2/sql/reader_waits_for_lock.sql @@ -7,11 +7,11 @@ 1: insert into reader_waits_for_lock_table select 1, 1; -- save session id 1: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a); -2U: BEGIN; -2U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE; +0U: BEGIN; +0U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE; -- creates reader and writer gang 1&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b; -- all processes in the session 1 should be blocked -2U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid); -2U: COMMIT; +0U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid); +0U: COMMIT; 1<: diff --git a/src/test/isolation2/sql/segwalrep/commit_blocking.sql b/src/test/isolation2/sql/segwalrep/commit_blocking.sql index 3966ac07f8..31e8a84731 100644 --- a/src/test/isolation2/sql/segwalrep/commit_blocking.sql +++ b/src/test/isolation2/sql/segwalrep/commit_blocking.sql @@ -26,7 +26,7 @@ $$ language plpythonu; select content, role, preferred_role, mode, status from gp_segment_configuration where content=2; -- print synchronous_standby_names should be set to '*' at start of test -2U: show synchronous_standby_names; +0U: show synchronous_standby_names; -- create table and show commits are not blocked create table segwalrep_commit_blocking (a int) distributed by (a); @@ -41,21 +41,21 @@ select gp_request_fts_probe_scan(); -- turn off fts ! gpconfig -c gp_fts_probe_pause -v true --masteronly --skipvalidation; -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); -- stop a mirror and show commit on dbid 2 will block -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'stop', NULL, NULL); -2U&: insert into segwalrep_commit_blocking values (1); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'stop', NULL, NULL); +0U&: insert into segwalrep_commit_blocking values (1); -- restart primary dbid 2 -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=0), 'restart', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=0), 'restart', NULL, NULL); -- should show dbid 2 utility mode connection closed because of primary restart -2U<: -2Uq: +0U<: +0Uq: -- synchronous_standby_names should be set to '*' after primary restart -2U: show synchronous_standby_names; +0U: show synchronous_standby_names; -- this should block since mirror is not up and sync replication is on 3: begin; @@ -66,14 +66,14 @@ select gp_request_fts_probe_scan(); 4: insert into segwalrep_commit_blocking values (3); -- bring the mirror back up -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'start', (select port from gp_segment_configuration where content = 0 and preferred_role = 'm'), 0); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=0), 'start', (select port from gp_segment_configuration where content = 0 and preferred_role = 'm'), 0); -- should unblock and commit now that mirror is back up and in-sync 3<: -- turn on fts ! gpconfig -c gp_fts_probe_pause -v false --masteronly --skipvalidation; -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); -- everything should be back to normal 4: insert into segwalrep_commit_blocking select i from generate_series(1,10)i; diff --git a/src/test/isolation2/sql/segwalrep/fts_unblock_primary.sql b/src/test/isolation2/sql/segwalrep/fts_unblock_primary.sql index 9eb75f2bbc..92c79f573c 100644 --- a/src/test/isolation2/sql/segwalrep/fts_unblock_primary.sql +++ b/src/test/isolation2/sql/segwalrep/fts_unblock_primary.sql @@ -53,10 +53,10 @@ insert into fts_unblock_primary values (1); -- turn off fts ! gpconfig -c gp_fts_probe_pause -v true --masteronly --skipvalidation; -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); -- stop a mirror -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'stop', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'stop', NULL, NULL); -- this should block since mirror is not up and sync replication is on 2: begin; @@ -68,7 +68,7 @@ insert into fts_unblock_primary values (3); -- turn on fts ! gpconfig -c gp_fts_probe_pause -v false --masteronly --skipvalidation; -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='p' and c.content=-1), 'reload', NULL, NULL); --trigger fts probe and check to see primary marked n/u and mirror n/d select gp_request_fts_probe_scan(); @@ -81,7 +81,7 @@ select content, role, preferred_role, mode, status from gp_segment_configuration 4U: show synchronous_standby_names; -- bring the mirror back up and see primary s/u and mirror s/u -1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'start', (select port from gp_segment_configuration where content = 2 and preferred_role = 'm'), 2); +-1U: select pg_ctl((select datadir from gp_segment_configuration c where c.role='m' and c.content=2), 'start', (select port from gp_segment_configuration where content = 2 and preferred_role = 'm'), 2); select wait_for_streaming(2::smallint); select content, role, preferred_role, mode, status from gp_segment_configuration where content=2; diff --git a/src/test/isolation2/sql/segwalrep/mirror_promotion.sql b/src/test/isolation2/sql/segwalrep/mirror_promotion.sql index ee8bd9bb3e..f517266a86 100644 --- a/src/test/isolation2/sql/segwalrep/mirror_promotion.sql +++ b/src/test/isolation2/sql/segwalrep/mirror_promotion.sql @@ -33,8 +33,10 @@ select content, preferred_role, role, status, mode from gp_segment_configuration where content = 0; --- wait for dbid 5 (mirror for content 0) to finish the promotion -5U: select 1; +-- wait for content 0 (earlier mirror, now primary) to finish the promotion +0U: select 1; +-- Quit this utility mode session, as need to start fresh one below +0Uq: -- fully recover the failed primary as new mirror !\retcode ../../../gpAux/gpdemo/gpsegwalrep.py recoverfull; @@ -56,8 +58,8 @@ select content, preferred_role, role, status, mode from gp_segment_configuration where content = 0; --- wait for dbid 2 (primary for content 0) finish promotion -2U: select 1; +-- wait for content 0 (earlier mirror, now primary) to finish the promotion +0U: select 1; -- now, let's fully recover the mirror !\retcode ../../../gpAux/gpdemo/gpsegwalrep.py recoverfull; @@ -67,4 +69,3 @@ where content = 0; select content, preferred_role, role, status, mode from gp_segment_configuration where content = 0; - diff --git a/src/test/isolation2/sql/vacuum_after_vacuum_skip_drop_column.sql b/src/test/isolation2/sql/vacuum_after_vacuum_skip_drop_column.sql index 0a9d2f046d..709a8bdbe7 100644 --- a/src/test/isolation2/sql/vacuum_after_vacuum_skip_drop_column.sql +++ b/src/test/isolation2/sql/vacuum_after_vacuum_skip_drop_column.sql @@ -7,7 +7,7 @@ INSERT INTO aoco_vacuum_after_vacuum_skip_drop SELECT i as a, i as b FROM genera DELETE FROM aoco_vacuum_after_vacuum_skip_drop; -- We should see all aocssegs in state 1 -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); -- VACUUM while another session holds lock 1: BEGIN; @@ -16,12 +16,12 @@ DELETE FROM aoco_vacuum_after_vacuum_skip_drop; 1: END; -- We should see an aocsseg in state 2 (AOSEG_STATE_AWAITING_DROP) -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); -- The VACUUM should clean up aocssegs in state 2 (AOSEG_STATE_AWAITING_DROP) 1: VACUUM aoco_vacuum_after_vacuum_skip_drop; -2U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, column_num, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); -- Check if insert goes into segno 1 instead of segno 2 1: INSERT INTO aoco_vacuum_after_vacuum_skip_drop SELECT i as a, i as b FROM generate_series(1, 100) AS i; -2U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); +0U: SELECT segno, tupcount > 0, state FROM gp_toolkit.__gp_aocsseg_name('aoco_vacuum_after_vacuum_skip_drop'); diff --git a/src/test/isolation2/sql_isolation_testcase.py b/src/test/isolation2/sql_isolation_testcase.py index 45f487414c..bb15e942f0 100644 --- a/src/test/isolation2/sql_isolation_testcase.py +++ b/src/test/isolation2/sql_isolation_testcase.py @@ -355,7 +355,7 @@ class SQLIsolationExecutor(object): command_part = line.partition("--")[0] # remove comment from line if command_part == "" or command_part == "\n": print >>output_file - elif command_part.endswith(";\n") or re.match(r"^\d+[q\\<]:$", line) or re.match(r"^\d+U[q\\<]:$", line): + elif command_part.endswith(";\n") or re.match(r"^\d+[q\\<]:$", line) or re.match(r"^-?\d+U[q\\<]:$", line): command += command_part try: self.process_command(command, output_file) -- GitLab