Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

executeCommand change type fails to run on an update #227

Open
szandany opened this issue Feb 3, 2022 · 0 comments
Open

executeCommand change type fails to run on an update #227

szandany opened this issue Feb 3, 2022 · 0 comments

Comments

@szandany
Copy link

szandany commented Feb 3, 2022

After testing the executeCommand change type, it appears that the change set containing the executeCommand change type fails.

Steps to reproduce:
Create a changeset with the executeCommand change type.
Example:

        <changeSet author="Tsvi" id="4321">
           <executeCommand executable="/Users/support.liquibase.net/CLI-Projects/MongoDB_CLI/run_with_mongodb_shell.sh" os="Mac OS X" timeout="10s">  
                <arg  value="test.js"/> 
            </executeCommand>
        </changeSet> 

Running the changeset with the liquibase update command generates the following error:

$ liquibase update --log-level=INFO
Starting Liquibase at 11:10:32 (version 4.7.1 #1239 built at 2022-01-20 20:31+0000)
Liquibase Version: 4.7.1
Liquibase Pro 4.7.1 by Liquibase licensed to customersuccess until Sun Jun 26 23:59:59 CDT 2022
[2022-02-03 11:10:32] INFO [liquibase.license] Successfully installed license from Base64 string starting with 'ABwwGgQUjx' (property liquibaseProLicenseKey).

[2022-02-03 11:10:32] INFO [com.mongodb.diagnostics.logging.JULLogger log] Cluster created with settings {hosts=[tsvi.datical.net:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
[2022-02-03 11:10:32] INFO [com.mongodb.diagnostics.logging.JULLogger log] Cluster description not yet available. Waiting for 30000 ms before timing out
[2022-02-03 11:10:32] INFO [com.mongodb.diagnostics.logging.JULLogger log] Opened connection [connectionId{localValue:1, serverValue:80}] to tsvi.datical.net:27017
[2022-02-03 11:10:32] INFO [com.mongodb.diagnostics.logging.JULLogger log] Monitor thread successfully connected to server with description ServerDescription{address=tsvi.datical.net:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[4, 4, 5]}, minWireVersion=0, maxWireVersion=9, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=45103969}
[2022-02-03 11:10:33] INFO [com.mongodb.diagnostics.logging.JULLogger log] Opened connection [connectionId{localValue:2, serverValue:81}] to tsvi.datical.net:27017
[2022-02-03 11:10:33] INFO [liquibase.ext] Adjusting database Lock Collection with name: MYDB.DATABASECHANGELOGLOCK
[2022-02-03 11:10:33] INFO [liquibase.ext] Adjusted database Lock Collection with name: MYDB.DATABASECHANGELOGLOCK
[2022-02-03 11:10:33] INFO [liquibase.ext] Lock Database
[2022-02-03 11:10:33] INFO [liquibase.ext] Successfully Acquired Change Log Lock
[2022-02-03 11:10:33] INFO [liquibase.servicelocator] Cannot load service: liquibase.parser.ChangeLogParser: liquibase.nosql.parser.json.JsonNoSqlChangeLogParser Unable to get public no-arg constructor
[2022-02-03 11:10:34] INFO [liquibase.ext] Adjusting database history Collection with name: MYDB.DATABASECHANGELOG
[2022-02-03 11:10:34] INFO [liquibase.ext] Adjusted database history Collection with name: MYDB.DATABASECHANGELOG
Running Changeset: executeCommand.xml::4321::Tsvi
[2022-02-03 11:10:34] INFO [liquibase.nosql] Changeset executeCommand.xml::4321::Tsvi
[2022-02-03 11:10:34] INFO [liquibase.nosql] WARNING The following SQL may change each run and therefore is possibly incorrect and/or invalid:
[2022-02-03 11:10:34] INFO [liquibase.ext] Release Database Lock
[2022-02-03 11:10:34] INFO [liquibase.ext] Successfully released change log lock
[2022-02-03 11:10:34] INFO [com.mongodb.diagnostics.logging.JULLogger log] Closed connection [connectionId{localValue:2, serverValue:81}] to tsvi.datical.net:27017 because the pool has been closed.
[2022-02-03 11:10:34] SEVERE [liquibase.integration] Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
liquibase.exception.CommandExecutionException: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.command.CommandScope.execute(CommandScope.java:163)
        at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:51)
        at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:21)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$1(LiquibaseCommandLine.java:325)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:165)
        at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:291)
        at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:80)
Caused by: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.integration.commandline.Main$1.run(Main.java:443)
        at liquibase.integration.commandline.Main$1.run(Main.java:221)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:165)
        at liquibase.integration.commandline.Main.run(Main.java:221)
        at liquibase.command.AbstractCliWrapperCommandStep.run(AbstractCliWrapperCommandStep.java:32)
        at liquibase.command.CommandScope.execute(CommandScope.java:157)
        ... 14 more
Caused by: liquibase.exception.LiquibaseException: liquibase.exception.MigrationFailedException: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:124)
        at liquibase.Liquibase.lambda$null$0(Liquibase.java:265)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.Scope.child(Scope.java:243)
        at liquibase.Liquibase.lambda$update$1(Liquibase.java:264)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.Liquibase.runInScope(Liquibase.java:2405)
        at liquibase.Liquibase.update(Liquibase.java:211)
        at liquibase.Liquibase.update(Liquibase.java:197)
        at liquibase.integration.commandline.Main.doMigration(Main.java:1871)
        at liquibase.integration.commandline.Main$1.lambda$run$0(Main.java:398)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.integration.commandline.Main$1.run(Main.java:397)
        ... 20 more
Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.changelog.ChangeSet.execute(ChangeSet.java:695)
        at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:56)
        at liquibase.changelog.ChangeLogIterator$2.lambda$null$0(ChangeLogIterator.java:111)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.changelog.ChangeLogIterator$2.lambda$run$1(ChangeLogIterator.java:110)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.Scope.child(Scope.java:243)
        at liquibase.changelog.ChangeLogIterator$2.run(ChangeLogIterator.java:94)
        at liquibase.Scope.lambda$child$0(Scope.java:180)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:179)
        at liquibase.Scope.child(Scope.java:158)
        at liquibase.Scope.child(Scope.java:243)
        at liquibase.Scope.child(Scope.java:247)
        at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:66)
        ... 41 more
Caused by: java.lang.IllegalArgumentException
        at liquibase.nosql.executor.NoSqlExecutor.execute(NoSqlExecutor.java:194)
        at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1279)
        at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1261)
        at liquibase.changelog.ChangeSet.execute(ChangeSet.java:660)
        ... 61 more


Unexpected error running Liquibase: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException

liquibase.exception.CommandExecutionException: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.command.CommandScope.execute(CommandScope.java:163)
        at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:51)
        at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:21)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$1(LiquibaseCommandLine.java:325)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:165)
        at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:291)
        at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:80)
Caused by: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Migration failed for change set executeCommand.xml::4321::Tsvi:
     Reason: java.lang.IllegalArgumentException
        at liquibase.integration.commandline.Main$1.run(Main.java:443)
        at liquibase.integration.commandline.Main$1.run(Main.java:221)
        at liquibase.Scope.child(Scope.java:189)
        at liquibase.Scope.child(Scope.java:165)
        at liquibase.integration.commandline.Main.run(Main.java:221)
        at liquibase.command.AbstractCliWrapperCommandStep.run(AbstractCliWrapperCommandStep.java:32)
        at liquibase.command.CommandScope.execute(CommandScope.java:157)
        ... 14 more

Environment:
This change type was tested on MacOS and Linux Centos 7 with Liquibase 4.7.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants