Hello everyone,
I’m facing a strange issue and would like to know if anyone has experienced something similar.
Environment
- Spring Boot 1.5.22.RELEASE
- Liquibase 3.5.5
- Java 8 (OpenJDK 1.8.0_492)
- Docker container deployed in Rancher/Kubernetes
Problem
We have a changelog with the following header:
Hello everyone,
I’m facing a strange issue and would like to know if anyone has experienced something similar.
Environment
- Spring Boot 1.5.22.RELEASE
- Liquibase 3.5.5
- Java 8 (OpenJDK 1.8.0_492)
- Docker container deployed in Rancher/Kubernetes
Problem
We have a changelog with the following header:
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd">
The application was working correctly until July 17th. Since then, startup fails with:
liquibase.exception.ChangeLogParseException: liquibase.exception.SetupException: Error parsing … schema_reference.4: Failed to read schema document https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd’
What we investigated
- The same application works locally.
- The Docker image has not changed.
- We tested rolling back to previous images and the same error occurs.
- The pod has Internet connectivity.
- From inside the pod we can successfully access the XSD:
curl “…dbchangelog-4.5.xsd”
and it returns a valid XML schema (<xsd:schema>).
- The application is running with Java 8.
- The runtime Liquibase version is 3.5.5.
Interesting finding
If we change:…dbchangelog-4.5.xsd
to: …/dbchangelog-3.5.xsd
the application starts successfully and Liquibase runs without errors.
Questions
- Is there any known issue with Liquibase 3.5.5 resolving 4.x XSD files?
- Has anything changed recently regarding XSD validation or schema resolution that could explain why this worked before and now fails?
- Is it expected that Liquibase 3.5.5 should only use
dbchangelog-3.5.xsd? - Has anyone seen different behavior between local execution and Kubernetes/containerized environments when resolving XSDs?
Any insight would be greatly appreciated.
Thanks!