I have an integration test that works with liquibase 4.23.0 but fails with 4.23.1 and all versions following it.
The way the test fails is that it waits for 5 minutes to get a changelog lock and fails when that times out, and then immediately after aquires the lock.
Here it fails: Liquibase 4.23.1 failing to load in liquibase karaf feature integration test · GitHub
Here the lock is aquired Liquibase 4.23.1 failing to load in liquibase karaf feature integration test · GitHub
For 4.23.0 the lock is successfully aquired before liquibase starts setting up the schema: Successful load of the liquibase karaf feature integration test feature in karaf 4.4.4 · GitHub
This is the code that is run when starting the schema: https://github.com/steinarb/liquibase-karaf-feature/blob/master/liquibase-integration-test/karaf.liquibase.sample/src/main/java/no/priv/bang/karaf/sample/db/liquibase/test/SampleDbLiquibaseRunner.java#L95
Scope.child(scopeObjects, (ScopedRunner<?>) () -> new CommandScope("update") .addArgumentValue(DbUrlConnectionCommandStep.DATABASE_ARG, database) .addArgumentValue(UpdateCommandStep.CHANGELOG_FILE_ARG, changelistClasspathResource) .addArgumentValue(DatabaseChangelogCommandStep.CHANGELOG_PARAMETERS, new ChangeLogParameters(database)) .execute());
Is there something obvious I could do/should change here to make sure that the lock aquisition comes stably before liquibase tries to apply the changeset?