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

Cordformation not implicitly handling Groovy GString for config parsing. #487

Open
anixon604 opened this issue Jan 21, 2022 · 0 comments
Open

Comments

@anixon604
Copy link

Version 5.0.15
Applies to Cordform and Dockerform

Issue:

First four def vars resolve and behave correctly but placing the variable in an embedded string such as extraConfig throws error not valid to create ConfigValue from: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5004.

Solution is to convert the enclosing string "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$baseDebugPort".toString() with toString.

This might be something done behind the scenes or transparent to user though as it's not immediately apparent how to fix.

    def p2pBasePort = 10014
    def rpcBasePort = 10015
    def rpcAdminBasePort = 10055
    def sshdBasePort = 2225
    def baseDebugPort = 5004
    for (i in 0..investorNumber) {
        node {
            name "O=Investor$i,L=Vancouver,C=CA"
            p2pPort p2pBasePort//10014
            p2pAddress "0.0.0.0"
            rpcSettings {
                address("0.0.0.0:$rpcBasePort")
                adminAddress("0.0.0.0:$rpcAdminBasePort")
            }
            rpcUsers = [
                    [ user: "user1", "password": "test", "permissions": ["ALL"]],
                    [ user: "admin", "password": "test", "permissions": ["ALL"]],
                    [ user: "agency", "password": "test", "permissions": ["ALL"]],
                    [ user: "issuer", "password": "test", "permissions": ["ALL"]],
                    [ user: "banker", "password": "test", "permissions": ["ALL"]],
                    [ user: "investor", "password": "test", "permissions": ["ALL"]],
            ]
            extraConfig = [
                    'custom.jvmArgs': [
                            "-Xmx1G",
                            "-XX:+UseG1GC",
                            "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$baseDebugPort"
                    ]
            ]
            sshdPort sshdBasePort
        }
        p2pBasePort++
        rpcBasePort++
        rpcAdminBasePort++
        sshdBasePort++
        baseDebugPort++
    }
Execution failed for task ':createDockerNodes'.
> bug in method caller: not valid to create ConfigValue from: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5004
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':createDockerNodes'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:166)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:163)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:156)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: com.typesafe.config.ConfigException$BugOrBroken: bug in method caller: not valid to create ConfigValue from: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5004
at com.typesafe.config.impl.ConfigImpl.fromAnyRef(ConfigImpl.java:281)
at com.typesafe.config.impl.ConfigImpl.fromAnyRef(ConfigImpl.java:273)
at com.typesafe.config.impl.PropertiesParser.fromPathMap(PropertiesParser.java:152)
at com.typesafe.config.impl.PropertiesParser.fromPathMap(PropertiesParser.java:82)
at com.typesafe.config.impl.ConfigImpl.fromAnyRef(ConfigImpl.java:264)
at com.typesafe.config.impl.ConfigImpl.fromPathMap(ConfigImpl.java:200)
at com.typesafe.config.ConfigFactory.parseMap(ConfigFactory.java:1038)
at com.typesafe.config.ConfigFactory.parseMap(ConfigFactory.java:1049)
at net.corda.plugins.Node.configureProperties(Node.kt:488)
at net.corda.plugins.Node.installDockerConfig$cordformation(Node.kt:667)
at net.corda.plugins.Dockerform.build(Dockerform.kt:95)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant