I did this by adding another locking process, which makes the other two
wait.  This way the output should be stable enough.
Per buildfarm and Andres Freund
Discussion: https://postgr.es/m/
20180103034445.t3utrtrnrevfsghm@alap3.anarazel.de
-Parsed test spec with 2 sessions
+Parsed test spec with 3 sessions
 
-starting permutation: s2l s1i s2i
+starting permutation: s2l s1i s2i s3u
+pg_advisory_lock
+
+               
 step s2l: SELECT pg_advisory_lock(281457);
 pg_advisory_lock
 
  <waiting ...>
 step s2i: 
                CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id)
-               WHERE unlck();
+               WHERE unlck() AND lck_shr(572814);
+ <waiting ...>
+step s3u: SELECT unlck();
+unlck          
 
+t              
 step s1i: <... completed>
-s1             
-
-               
+step s2i: <... completed>
 
 step "s1i"     {
                CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id)
                WHERE lck_shr(281457);
-       }
-teardown       { SELECT pg_advisory_unlock_all() AS "s1"; }
+}
+step "s1u"  { SELECT unlck(); }
 
 
 session "s2"
 step "s2l"  { SELECT pg_advisory_lock(281457); }
 step "s2i"     {
                CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id)
-               WHERE unlck();
+               WHERE unlck() AND lck_shr(572814);
        }
 
-permutation "s2l" "s1i" "s2i"
+session "s3"
+setup          { SELECT pg_advisory_lock(572814); }
+step "s3u"     { SELECT unlck(); }
+
+permutation "s2l" "s1i" "s2i" "s3u"