IllegalStateException生成节点信息文件时出错 [英] IllegalStateException Error while generating node info files

查看:101
本文介绍了IllegalStateException生成节点信息文件时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在适用于Corda项目的AWS Ubuntu计算机上执行 gradle clean deployNodes 命令时,出现以下问题:

I am getting the following issue when I perform the gradle clean deployNodes command on AWS Ubuntu machine for Corda project:

Error while generating node info files 

我正在使用时出错

有趣的是,相同的corda项目在Windows机器上可以运行,但在AWS机器上无法运行。

And interestingly the same corda project works on the Windows machine but fails on AWS machine.

AWS和Windows计算机上的JDK 1.8.181和gradle 4.10.2。

JDK 1.8.181 and gradle 4.10.2 on AWS and windows machine.

它要求检查日志文件,但日志中没有显示与任何错误相关的信息...

It asks to check logs files but logs show nothing related to any error ...

您能帮忙解决此问题吗?

Can you please help with this issue?

这是一个例外:

if (!process.waitFor(3, TimeUnit.MINUTES)) {
    process.destroyForcibly()
    throw IllegalStateException("Error while generating node info file. Please check the logs in $logsDir.")
}

I从上面提到的方法中找出这个代码块总是抛出一个异常,当deployNodes任务花费的时间超过3分钟时。

I figured out that this code block from above mention method is always throwing an exception when time taken by deployNodes task goes beyond 3 minutes.

我在Corda网络中有8个节点,我正在尝试使用gradle clean deployNodes命令构建这些节点。

I am having 8 nodes in my corda network and I am trying to build those nodes using gradle clean deployNodes command.

任何人都可以帮忙吗?


原因:java.lang。 IllegalStateException:生成
节点信息文件时出错。请检查
/ home / ubuntu / xxx / build / nodes / nodeA / logs中的日志。
在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion.generateNodeInfo(NetworkBootstrapper.kt:112)
在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion.access $ generateNodeInfo( NetworkBootstrapper.kt:71)
在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion $ generateNodeInfos $ 1 $ 1.invoke(NetworkBootstrapper.kt:95)
在net.corda.nodeapi.internal。 network.NetworkBootstrapper $ Companion $ generateNodeInfos $ 1 $ 1.invoke(NetworkBootstrapper.kt:71)
at net.corda.core.internal.concurrent.ValueOrException $ DefaultImpls.capture(CordaFutureImpl.kt:140)
at net.corda.core.internal.concurrent.OpenFuture $ DefaultImpls.capture(CordaFutureImpl.kt)
at net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:152)

Caused by: java.lang.IllegalStateException: Error while generating node info file. Please check the logs in /home/ubuntu/xxx/build/nodes/nodeA/logs. at net.corda.nodeapi.internal.network.NetworkBootstrapper$Companion.generateNodeInfo(NetworkBootstrapper.kt:112) at net.corda.nodeapi.internal.network.NetworkBootstrapper$Companion.access$generateNodeInfo(NetworkBootstrapper.kt:71) at net.corda.nodeapi.internal.network.NetworkBootstrapper$Companion$generateNodeInfos$1$1.invoke(NetworkBootstrapper.kt:95) at net.corda.nodeapi.internal.network.NetworkBootstrapper$Companion$generateNodeInfos$1$1.invoke(NetworkBootstrapper.kt:71) at net.corda.core.internal.concurrent.ValueOrException$DefaultImpls.capture(CordaFutureImpl.kt:140) at net.corda.core.internal.concurrent.OpenFuture$DefaultImpls.capture(CordaFutureImpl.kt) at net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:152)


推荐答案

如下面的Cais和Stefano所建议的那样,是上述问题的答案。

As suggested by Cais and Stefano below is the answer to above question.

使用以下步骤将JVM配置为使用/ dev / urandom:-

Use these steps to configure the JVM to use /dev/urandom :-


  1. 在文本编辑器中打开$ JAVA_HOME / jre / lib / security / java.security文件。

  1. Open the $JAVA_HOME/jre/lib/security/java.security file in a text editor.

在我的计算机上为 / usr / lib /jvm/java-8-oracle/jre/lib/security/java.security

更改行 securerandom.source = file:/ dev / random

读取: securerandom.source = file:/ dev /./ urandom

保存更改并退出文本编辑器。

Save your change and exit the text editor.

并且由于在使用/ dev / urandom时JDK中存在一个错误,因此必须将其设置为/ dev/。/urandom

And because there’s a bug in JDK when you use /dev/urandom you have to set it up as /dev/./urandom

可以使用:-

您还可以设置系统属性 java.security.egd,该属性将覆盖securerandom.source设置。
-Djava.security.egd = file:/ dev /./ urandom

You can also set up system property "java.security.egd" which will override the securerandom.source setting. -Djava.security.egd=file:/dev/./urandom

在运行引导程序通过时在命令行上: -Djava.security.egd = file:/ dev /./ urandom

on the command line when you run the bootstrapper pass: -Djava.security.egd=file:/dev/./urandom

在URL下方查看更多信息。

Check below URL for more info.

http: //ruleoftech.com/2016/avoiding-jvm-delays-caused-by-random-number-generation

这篇关于IllegalStateException生成节点信息文件时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆