Upgrade 3.1.1 to 3.2.0 throws liquibase.exception.ValidationFailedException: Validation Failed: 1 change sets check sum .. is now: ..

I have an issue upgrading from 3.1.1 to 3.2.0 due to mismatched checksum, although the changeset file is unchanged:


  1. Is this is a bug? If so, let me know and I’ll file a JIRA. Thank you.

Since Zoho does not allow multiple attachments, I attach the stacktrace here.

It looks like the change isn’t from either of the two issues you listed, but rather a change in how whitespace around nested text is handled. 


In 3.1.1, the and tags were incorrectly including any whitespace you have around the tags in the checksum calculation, which made it easy for checksums to get changed when files are reformatted etc. 


Whitespace within the text is still preserved but it is no longer significant around the text. You should only see the problem in changeSets that have text nodes with whitespace around them.


I’ll add a note to the release notes about the change in behavior. I don’t think we want to revert the functionality because fixed logic is correct. If you have a changeSet that has the problem, the easiest solution is to add a … tag listing the new checksum. You can also set the md5sum column in databasechangelog to null and liquibase will recompute the checksums on the next run, but that needs to be done on every database and will affect runOnChange logic you may have.


Nathan

Actually I had the versions backwards. 3.2.0 introduced a regression in that it improperly includes leading and trailing spaces in the checksum. 


I will release a 3.2.1 version in the next couple days that will address the problem and restore the original checksums.


Nathan

After upgrading from 3.1.1 to 3.2.2, I still get this error:

  1. Caused by: org.soluvas.data.push.RepositoryException: Cannot migrate 'tuneeca' using 'id/co/bippo/inventory/inventorybalance.liquibase.xml': liquibase.exception.ValidationFailedException: Validation Failed:
  2.      1 change sets check sum
  3.           id/co/bippo/inventory/inventorybalance.liquibase.xml::table_inventorybalance::rudi is now: 7:49a6c46364d7612277f1bfd18f369a23
  4.         at org.soluvas.jpa.JpaRepositoryBase.migrate(JpaRepositoryBase.java:229) ~[org.soluvas.jpa-2.2.0-SNAPSHOT.jar:na]
  5.         at org.soluvas.jpa.JpaRepositoryBase.init(JpaRepositoryBase.java:240) ~[org.soluvas.jpa-2.2.0-SNAPSHOT.jar:na]
  6.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_05]
  7.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_05]
  8.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_05]
  9.         at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_05]
  10.         at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
  11.         at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
  12.         at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ~[spring-beans-4.0.5.RELEASE.jar:4.0.5.RELEASE]
  13.         ... 27 common frames omitted
  14. Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
  15.      1 change sets check sum
  16.           id/co/bippo/inventory/inventorybalance.liquibase.xml::table_inventorybalance::rudi is now: 7:49a6c46364d7612277f1bfd18f369a23
  17.         at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:181) ~[liquibase-core-3.2.2.jar:na]
  18.         at liquibase.Liquibase.update(Liquibase.java:191) ~[liquibase-core-3.2.2.jar:na]
  19.         at org.soluvas.jpa.JpaRepositoryBase.migrate(JpaRepositoryBase.java:222) ~[org.soluvas.jpa-2.2.0-SNAPSHOT.jar:na]
  20.         ... 35 common frames omitted
the 3.1.1 checksum is: 7:4dadd82b02b0ec3cfe0902f1448fdb33 the 3.2.2 checksum is different: 7:49a6c46364d7612277f1bfd18f369a2

Is there still checksum regression with 3.2.2 ?

The problematic XML file is attached.