Reference Commits: b6309fce1, b2a0486d1, 7c9bbed11
Files (primary):
yaml-tests/src/main/.../YamlTestCatalogInitializer.java,
yaml-tests/src/test/.../YamlTest.java,
yaml-tests/src/main/.../block/SetupBlock.java,
yaml-tests/src/test/.../PerMethodResourceLocksProvider.java
Each yaml-test lazily bootstrapped /__SYS/CATALOG on its first transaction; under parallelism the first test wins the create race and every sibling retries around a SERIALIZATION_FAILURE. Parameterised invocations of the same yaml-test method also collide with each other on the same fixture, though different methods have no reason to serialise.
Bootstrap the /__SYS/CATALOG record store once per suite in @BeforeAll rather than lazily on the first test. Register a JUnit LockConfigurationResolver (via PerMethodResourceLocksProvider) that serialises the parameterised invocations of any single yaml- test method against each other while still allowing different methods to run concurrently.
In addition the core YamlTest tests, other classes run into catalog initialization issues. We should wire those files up too:
Reference Commits: b2a0486d1 (partial)
Files (primary): EmbeddedConfig.java, JDBCInProcessConfig.java,
external-server yaml-test config
Reference Commits:
b6309fce1,b2a0486d1,7c9bbed11Files (primary):
yaml-tests/src/main/.../YamlTestCatalogInitializer.java,yaml-tests/src/test/.../YamlTest.java,yaml-tests/src/main/.../block/SetupBlock.java,yaml-tests/src/test/.../PerMethodResourceLocksProvider.javaEach yaml-test lazily bootstrapped
/__SYS/CATALOGon its first transaction; under parallelism the first test wins the create race and every sibling retries around aSERIALIZATION_FAILURE. Parameterised invocations of the same yaml-test method also collide with each other on the same fixture, though different methods have no reason to serialise.Bootstrap the
/__SYS/CATALOGrecord store once per suite in@BeforeAllrather than lazily on the first test. Register a JUnitLockConfigurationResolver(viaPerMethodResourceLocksProvider) that serialises the parameterised invocations of any single yaml- test method against each other while still allowing different methods to run concurrently.In addition the core YamlTest tests, other classes run into catalog initialization issues. We should wire those files up too:
Reference Commits:
b2a0486d1(partial)Files (primary):
EmbeddedConfig.java,JDBCInProcessConfig.java,external-server yaml-test config