mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-04 18:16:59 +02:00
Disable one set of tests from c884119950
.
One of the upsert related tests is unstable (sometimes even hanging
until isolationtester's step timeout is reached). Based on preliminary
analysis that might be a problem outside of just that test, but not
really related to EPQ and triggers. Disable for now, to get the
buildfarm greener again.
Discussion: https://postgr.es/m/20191004222437.45qmglpto43pd3jb@alap3.anarazel.de
Backpatch: 9.6-, just like c884119950
.
This commit is contained in:
parent
54b0feaf90
commit
5711a1828f
@ -2054,223 +2054,6 @@ key data
|
||||
key-a val-a-s1-ups1-ups3
|
||||
key-b val-b-s1
|
||||
|
||||
starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_b_rc s2_b_rc s3_b_rc s1_upd_a_data s3_upd_a_data s2_upsert_a_data s1_upd_a_data s1_c s3_del_a s3_c s2_c s0_rep
|
||||
step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1)
|
||||
s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1)
|
||||
step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
|
||||
key data
|
||||
|
||||
key-a val-a-s1
|
||||
step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
step s3_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
s1: NOTICE: upd: text key-a = text key-a: t
|
||||
s1: NOTICE: upk: text val-a-s1 <> text mismatch: t
|
||||
s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
|
||||
s1: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
|
||||
step s1_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups1'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1 <> text mismatch: t
|
||||
step s3_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups3'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
<waiting ...>
|
||||
s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2)
|
||||
step s2_upsert_a_data:
|
||||
INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
|
||||
ON CONFLICT (key)
|
||||
DO UPDATE SET data = trigtest.data || '-upserts2'
|
||||
WHERE
|
||||
noisy_oper('upd', trigtest.key, '=', 'key-a') AND
|
||||
noisy_oper('upk', trigtest.data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
<waiting ...>
|
||||
s1: NOTICE: upd: text key-a = text key-a: t
|
||||
s1: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t
|
||||
s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups1)
|
||||
s1: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups1)
|
||||
step s1_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups1'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1
|
||||
step s1_c: COMMIT;
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1-ups1-ups1 <> text mismatch: t
|
||||
s3: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-ups3)
|
||||
s3: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-ups3)
|
||||
step s3_upd_a_data: <... completed>
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-ups3
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1-ups1-ups1-ups3 <> text mismatch: t
|
||||
s3: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1-ups1-ups3) new: <NULL>
|
||||
s3: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1-ups1-ups3) new: <NULL>
|
||||
step s3_del_a:
|
||||
DELETE FROM trigtest
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-ups3
|
||||
step s3_c: COMMIT;
|
||||
s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2)
|
||||
step s2_upsert_a_data: <... completed>
|
||||
key data
|
||||
|
||||
key-a val-a-upss2
|
||||
step s2_c: COMMIT;
|
||||
step s0_rep: SELECT * FROM trigtest ORDER BY key, data
|
||||
key data
|
||||
|
||||
key-a val-a-upss2
|
||||
|
||||
starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_b_rc s2_b_rc s3_b_rc s1_upd_a_data s3_upd_a_data s2_upsert_a_data s1_upd_a_data s1_c s3_del_a s3_r s2_c s0_rep
|
||||
step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1)
|
||||
s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1)
|
||||
step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
|
||||
key data
|
||||
|
||||
key-a val-a-s1
|
||||
step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
step s3_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
|
||||
?column?
|
||||
|
||||
1
|
||||
s1: NOTICE: upd: text key-a = text key-a: t
|
||||
s1: NOTICE: upk: text val-a-s1 <> text mismatch: t
|
||||
s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
|
||||
s1: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
|
||||
step s1_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups1'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1 <> text mismatch: t
|
||||
step s3_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups3'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
<waiting ...>
|
||||
s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2)
|
||||
step s2_upsert_a_data:
|
||||
INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
|
||||
ON CONFLICT (key)
|
||||
DO UPDATE SET data = trigtest.data || '-upserts2'
|
||||
WHERE
|
||||
noisy_oper('upd', trigtest.key, '=', 'key-a') AND
|
||||
noisy_oper('upk', trigtest.data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
<waiting ...>
|
||||
s1: NOTICE: upd: text key-a = text key-a: t
|
||||
s1: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t
|
||||
s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups1)
|
||||
s1: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups1)
|
||||
step s1_upd_a_data:
|
||||
UPDATE trigtest SET data = data || '-ups1'
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *;
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1
|
||||
step s1_c: COMMIT;
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1-ups1-ups1 <> text mismatch: t
|
||||
s3: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-ups3)
|
||||
s3: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-ups3)
|
||||
step s3_upd_a_data: <... completed>
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-ups3
|
||||
s3: NOTICE: upd: text key-a = text key-a: t
|
||||
s3: NOTICE: upk: text val-a-s1-ups1-ups1-ups3 <> text mismatch: t
|
||||
s3: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1-ups1-ups3) new: <NULL>
|
||||
s3: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1-ups1-ups3) new: <NULL>
|
||||
step s3_del_a:
|
||||
DELETE FROM trigtest
|
||||
WHERE
|
||||
noisy_oper('upd', key, '=', 'key-a') AND
|
||||
noisy_oper('upk', data, '<>', 'mismatch')
|
||||
RETURNING *
|
||||
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-ups3
|
||||
step s3_r: ROLLBACK;
|
||||
s2: NOTICE: upd: text key-a = text key-a: t
|
||||
s2: NOTICE: upk: text val-a-s1-ups1-ups1 <> text mismatch: t
|
||||
s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-upserts2)
|
||||
s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1-ups1) new: (key-a,val-a-s1-ups1-ups1-upserts2)
|
||||
step s2_upsert_a_data: <... completed>
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-upserts2
|
||||
step s2_c: COMMIT;
|
||||
step s0_rep: SELECT * FROM trigtest ORDER BY key, data
|
||||
key data
|
||||
|
||||
key-a val-a-s1-ups1-ups1-upserts2
|
||||
|
||||
starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_b s1_b_rc s2_b_rc s1_ins_a s1_upd_b_data s2_upd_b_data s1_del_b s1_upd_a_tob s1_c s2_c s0_rep
|
||||
step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
|
||||
|
@ -368,16 +368,17 @@ permutation "s1_trig_rep_b_u" "s1_trig_rep_a_u"
|
||||
"s1_ins_a" "s1_ins_b" "s1_b_rc" "s2_b_rc" "s3_b_rc"
|
||||
"s1_upd_a_data" "s2_upd_a_data" "s3_upd_a_data" "s1_c" "s2_r" "s3_c"
|
||||
"s0_rep"
|
||||
# s1 updates, s3 updates, s2 upserts, s1 updates, s1 commits, s3 EPQ, s3 deletes, s3 commits, s2 inserts without EPQ recheck
|
||||
permutation "s1_trig_rep_b_i" "s1_trig_rep_b_d" "s1_trig_rep_b_u" "s1_trig_rep_a_i" "s1_trig_rep_a_d" "s1_trig_rep_a_u"
|
||||
"s1_ins_a" "s1_b_rc" "s2_b_rc" "s3_b_rc"
|
||||
"s1_upd_a_data" "s3_upd_a_data" "s2_upsert_a_data" "s1_upd_a_data" "s1_c" "s3_del_a" "s3_c" "s2_c"
|
||||
"s0_rep"
|
||||
# s1 updates, s3 updates, s2 upserts, s1 updates, s1 commits, s3 EPQ, s3 deletes, s3 rolls back, s2 EPQ
|
||||
permutation "s1_trig_rep_b_i" "s1_trig_rep_b_d" "s1_trig_rep_b_u" "s1_trig_rep_a_i" "s1_trig_rep_a_d" "s1_trig_rep_a_u"
|
||||
"s1_ins_a" "s1_b_rc" "s2_b_rc" "s3_b_rc"
|
||||
"s1_upd_a_data" "s3_upd_a_data" "s2_upsert_a_data" "s1_upd_a_data" "s1_c" "s3_del_a" "s3_r" "s2_c"
|
||||
"s0_rep"
|
||||
## XXX: Disable test, there is some potential for instability here that's not yet fully understood
|
||||
## s1 updates, s3 updates, s2 upserts, s1 updates, s1 commits, s3 EPQ, s3 deletes, s3 commits, s2 inserts without EPQ recheck
|
||||
#permutation "s1_trig_rep_b_i" "s1_trig_rep_b_d" "s1_trig_rep_b_u" "s1_trig_rep_a_i" "s1_trig_rep_a_d" "s1_trig_rep_a_u"
|
||||
# "s1_ins_a" "s1_b_rc" "s2_b_rc" "s3_b_rc"
|
||||
# "s1_upd_a_data" "s3_upd_a_data" "s2_upsert_a_data" "s1_upd_a_data" "s1_c" "s3_del_a" "s3_c" "s2_c"
|
||||
# "s0_rep"
|
||||
## s1 updates, s3 updates, s2 upserts, s1 updates, s1 commits, s3 EPQ, s3 deletes, s3 rolls back, s2 EPQ
|
||||
#permutation "s1_trig_rep_b_i" "s1_trig_rep_b_d" "s1_trig_rep_b_u" "s1_trig_rep_a_i" "s1_trig_rep_a_d" "s1_trig_rep_a_u"
|
||||
# "s1_ins_a" "s1_b_rc" "s2_b_rc" "s3_b_rc"
|
||||
# "s1_upd_a_data" "s3_upd_a_data" "s2_upsert_a_data" "s1_upd_a_data" "s1_c" "s3_del_a" "s3_r" "s2_c"
|
||||
# "s0_rep"
|
||||
|
||||
### Document that EPQ doesn't "leap" onto a tuple that would match after blocking
|
||||
# s1 inserts a, s1 updates b, s2 updates b, s1 deletes b, s1 updates a to b, s1 commits, s2 EPQ finds tuple deleted
|
||||
|
Loading…
Reference in New Issue
Block a user