Move distributed_transactions regression test in greenplum_schedule
The distributed_transactions test contains a serializable transaction. This serializable transaction may intermittently cause the appendonly test to fail when run in the same test group. The appendonly test runs VACUUM on some appendonly tables and checks that last_sequence is nonzero in gp_fastsequence. Serializable transactions make concurrent VACUUM operations on appendonly tables exit early. To fix the contention, let's move the distributed_transactions test to another test group. appendonly test failure diff: *** 632,640 **** NormalXid | 0 | t | 0 NormalXid | 0 | t | 1 NormalXid | 0 | t | 2 ! NormalXid | 1 | t | 0 ! NormalXid | 1 | t | 1 ! NormalXid | 1 | t | 2 (6 rows) --- 630,638 ---- NormalXid | 0 | t | 0 NormalXid | 0 | t | 1 NormalXid | 0 | t | 2 ! NormalXid | 1 | f | 0 ! NormalXid | 1 | f | 1 ! NormalXid | 1 | f | 2 (6 rows) Repro: 1: CREATE TABLE heap_table (a int, b int); 1: INSERT INTO heap_table SELECT i, i FROM generate_series(1,100)i; 1: CREATE TABLE ao_table WITH (appendonly=true) AS SELECT * FROM heap_table; 1: SELECT gp_segment_id, * FROM gp_dist_random('gp_fastsequence') WHERE gp_segment_id = 0; 2: BEGIN ISOLATION LEVEL SERIALIZABLE; 2: SELECT 1; 1: VACUUM ao_table; -- VACUUM exits early 1: SELECT gp_segment_id, * FROM gp_dist_random('gp_fastsequence') WHERE gp_segment_id = 0; 2: END; 1: VACUUM ao_table; -- VACUUM completes 1: SELECT gp_segment_id, * FROM gp_dist_random('gp_fastsequence') WHERE gp_segment_id = 0;
Showing
想要评论请 注册 或 登录