Stabilize results of insert-conflict-toast.spec.
authorTom Lane <[email protected]>
Thu, 24 Jun 2021 15:30:32 +0000 (11:30 -0400)
committerTom Lane <[email protected]>
Thu, 24 Jun 2021 15:30:32 +0000 (11:30 -0400)
This back-branch test script was later absorbed into
insert-conflict-specconflict.spec, which required some stabilization
in commit 741d7f104, so perhaps it's not surprising that it needs a
bit of love too.

It's odd though that we hadn't seen it fail before now, because
I thought that 741d7f104 did not change isolationtester's timing
behavior for scripts without any annotation markers.  In any case,
this script is racy on its face, so add an annotation to force stable
reporting order.

Report: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=piculet&dt=2021-06-24%2009%3A54%3A56
Report: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=petalura&dt=2021-06-24%2010%3A10%3A00

src/test/isolation/specs/insert-conflict-toast.spec

index efd4474f377d04420b44e1330d27bf0ba4e237fb..595cb70fc5cb14907199a9918320fadb747ce969 100644 (file)
@@ -48,4 +48,8 @@ step s3insert {
   INSERT INTO ctoast (key, val) VALUES (1, ctoast_large_val()) ON CONFLICT DO NOTHING;
 }
 
-permutation s2insert s3insert s1commit
+# s1's commit will release s2 and s3 at the same time, so there's a
+# race condition as to which finishes first.  Annotate the permutation
+# to always report s2 first.
+
+permutation s2insert s3insert(s2insert) s1commit