Does filename affect checksum in RC7?

Hi,

  So  I’m trying out RC 7 to get a new database to work with liquibase.  I have 2 svn checkouts from the same repo at 2 different revisions, to represent the database change log 1.0 and change log 1.1.  The database sync at revision A works fine, but when I try to run revision B from a different directory, it errors out because the checksum isn’t stopping liquibase to try to run the 1.0 changes again.  I checked database change log and under filename it shows the absolute path, which would obviously be different from revision B.  If this is the case then this would probably be the same reason I can’t commit liquibase changes on multiple platforms?  Thank you and I look forward to your reply!

It should be figuring the file name as part of the checksum.  With sqlFile changes, it figures the checksum based on the content of the file.  With others, it does not include the filename in the checksum, just a representation of the data inside the changeSet tag.

Nathan

I meant should not

Nathan

Nathan,

  So I synced a new database to 1.0 changes.  Now when I try to do an update to 1.1, the checksum fails for the first changeset.  I have done a diff on both files and there are no changes (even whitespace) between the files.  I’m executing this the same way from the same platform.  Is there a way to output the checksum for the failing changeset?  Any other ideas why this isn’t working?  It worked in RC6.  Thanks again

Hi Nathan,

 So I did some more tests to eliminate some possible user error on my part.  So I execute a sync from rc7 on a svn check out to my 1.0 snapshot.  That works fine, when I try running the 1.1 update from a new svn checkout in a different directory it doesn’t work.  However, if I do a checkout to the latest, revert to 1.0 run the sync, revert back to the latest and apply the 1.1 update it works fine.  I think this could also be the reason that my changes aren’t working on another server in my Continuous Integration build.  I understand you said that filename is not used in the checksum but aside from the 2 different directories I’m testing from, what could be different?  I also have relativeToChangelogFile=“true” for my includes, could that make a difference? Thanks and I look forward to your reply!

I added some additional checksum logging at the debug level on a build at http://liquibase.org/liquibase-2.0-rc8-SNAPSHOT-bin.zip.  Could you try running that with logLevel=DEBUG?  How you set that depends on how you are running liquibase (ant, maven, command line).  If you can’t tell how, let me know. 

Nathan

Is it possible to do logLevel=Debug via the ant tasks? I’m using and

It looks like you couldn’t.  I updated the http://liquibase.org/liquibase-2.0-rc8-SNAPSHOT-bin.zip build to add a logLevel attribute that can be set with ant.  Could you try that build?

Nathan

Hi Nathan,

  So I tried running a to a new database it and it was hanging around 25 minutes before I got a little red notification in eclipse saying “No attribute value completions available”.  I’m not sure if that has anything to do with the task but the log file hasn’t moved for at least 20 mins.  I’m not sure if that’s normal or not.  I’m not sure what to do next.  Thanks and I look forward to your reply

Was that with the new build?  It shouldn’t take too long to run the changelog sync normally.  Could you check your databasechangeloglock table and see if the locked column is 0?  If it is 1, liquibase will wait for it to be 0. The releaseLocks command will set it back to 0 if an earlier run crashed for an unexpected reason.

I’m not sure what else would cause the lock up.

Nathan

Hi Nathan,

  I’m pretty sure it was with the new build because I was allow to set logLevel to debug in ant.  Well I tried it a couple of times and every time after it “crashed”, liquibase would just poll the database waiting for that locked column to be 0.  Should I re-try and let it go longer for the 20+ minutes?  Every other release attempt sync only takes a few mins, probably less than 2-3.  I’ll also try it without the logLevel just to see if it’ll work.  Thanks and I look forward to your reply.

Yea I tried a sync with RC8 snapshot with loglevel not included in the ant build file and it worked fine.  I’m wondering if it could lock up by parsing characters to the console by the logging libraries? It looks like it’s stopping at the same exact place, I have a table of countries and providences and the text is in Spanish.  I’m just as baffled :frowning:

Nathan,

So I am able to successfully sync a new db and update it with RC8 if the filepath of the files is identical.  Meaning I have to checkout code from svn to a directory, roll it back to a revision, sync, revert then apply the new changes.  This does not work if I checkout an old revision to a different directory path than the latest revision.  I also tested this with 1.9.5 and it’s confirmed that it has to come from the same filepath as well.  We can for sure work around it, but it would be great if filepath wouldn’t matter so we can make database commits from our continuous integration system without having to manually apply it from the same directory.  Let me know your thoughts.  Thanks!

I’ve been unable to duplicate your checksum problem still. Could you send me the changelogs you are using and how you are executing them?  You can send them to nathan [at] voxland.net if you would prefer to not have them on the forum.

Nathan

Totally sorry I didn’t reply earlier, I am on vacation till Thursday and I will email them to you.  Thanks