提交 6489bc5d 编写于 作者: A Ashwin Agrawal 提交者: Xin Zhang

isolation2: Change dbid to content-id in SQL

Author: Xin Zhang <xzhang@pivotal.io>
Author: Jimmy Yih <jyih@pivotal.io>
Author: Ashwin Agrawal <aagrawal@pivotal.io>
上级 50f3cb12
......@@ -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
......
......@@ -19,8 +19,8 @@ BEGIN
CREATE
2&: commit; <waiting ...>
-- do checkpoint on dbid 3 (segment 1) in utility mode, and it should block
3U&: checkpoint; <waiting ...>
-- do checkpoint on segment content 1 in utility mode, and it should block
1U&: checkpoint; <waiting ...>
-- 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; <waiting ...>
-- do checkpoint on dbid 1 (master) in utility mode, and it should block
1U&: checkpoint; <waiting ...>
-- do checkpoint on master in utility mode, and it should block
-1U&: checkpoint; <waiting ...>
-- 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
......@@ -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
......
......@@ -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; <waiting ...>
-- 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
......
......@@ -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); <waiting ...>
0U&: insert into segwalrep_commit_blocking values (1); <waiting ...>
-- 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: ... <quitting>
0Uq: ... <quitting>
-- 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
......
......@@ -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
......
......@@ -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: ... <quitting>
-- 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)
......@@ -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
......
......@@ -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');
......@@ -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');
......@@ -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');
......@@ -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');
......@@ -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');
......@@ -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');
......@@ -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');
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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');
......@@ -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<:
......@@ -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
......
......@@ -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<:
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......@@ -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');
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册