CORDA-869: Stop silently dropping node configuration errors (#2267)

This commit is contained in:
Ross Nicoll 2017-12-18 15:17:18 +00:00 committed by GitHub
parent 00a5e3db6b
commit 166918c62c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -38,37 +38,36 @@ open class NodeStartup(val args: Array<String>) {
* @return true if the node startup was successful. This value is intended to be the exit code of the process. * @return true if the node startup was successful. This value is intended to be the exit code of the process.
*/ */
open fun run(): Boolean { open fun run(): Boolean {
try { val startTime = System.currentTimeMillis()
val startTime = System.currentTimeMillis() assertCanNormalizeEmptyPath()
assertCanNormalizeEmptyPath() val (argsParser, cmdlineOptions) = parseArguments()
val (argsParser, cmdlineOptions) = parseArguments()
// We do the single node check before we initialise logging so that in case of a double-node start it // We do the single node check before we initialise logging so that in case of a double-node start it
// doesn't mess with the running node's logs. // doesn't mess with the running node's logs.
enforceSingleNodeIsRunning(cmdlineOptions.baseDirectory) enforceSingleNodeIsRunning(cmdlineOptions.baseDirectory)
initLogging(cmdlineOptions) initLogging(cmdlineOptions)
val versionInfo = getVersionInfo() val versionInfo = getVersionInfo()
if (cmdlineOptions.isVersion) { if (cmdlineOptions.isVersion) {
println("${versionInfo.vendor} ${versionInfo.releaseVersion}") println("${versionInfo.vendor} ${versionInfo.releaseVersion}")
println("Revision ${versionInfo.revision}") println("Revision ${versionInfo.revision}")
println("Platform Version ${versionInfo.platformVersion}") println("Platform Version ${versionInfo.platformVersion}")
return true return true
} }
// Maybe render command line help. // Maybe render command line help.
if (cmdlineOptions.help) { if (cmdlineOptions.help) {
argsParser.printHelp(System.out) argsParser.printHelp(System.out)
return true return true
} }
drawBanner(versionInfo) drawBanner(versionInfo)
Node.printBasicNodeInfo(LOGS_CAN_BE_FOUND_IN_STRING, System.getProperty("log-path")) Node.printBasicNodeInfo(LOGS_CAN_BE_FOUND_IN_STRING, System.getProperty("log-path"))
val conf = try {
val conf0 = loadConfigFile(cmdlineOptions) val conf0 = loadConfigFile(cmdlineOptions)
if (cmdlineOptions.bootstrapRaftCluster) {
val conf = if (cmdlineOptions.bootstrapRaftCluster) {
if (conf0 is NodeConfigurationImpl) { if (conf0 is NodeConfigurationImpl) {
println("Bootstrapping raft cluster (starting up as seed node).") println("Bootstrapping raft cluster (starting up as seed node).")
// Ignore the configured clusterAddresses to make the node bootstrap a cluster instead of joining. // Ignore the configured clusterAddresses to make the node bootstrap a cluster instead of joining.
@ -80,14 +79,19 @@ open class NodeStartup(val args: Array<String>) {
} else { } else {
conf0 conf0
} }
} catch (e: Exception) {
logger.error("Exception during node configuration", e)
return false
}
banJavaSerialisation(conf) try {
preNetworkRegistration(conf) banJavaSerialisation(conf)
if (shouldRegisterWithNetwork(cmdlineOptions, conf)) { preNetworkRegistration(conf)
if (shouldRegisterWithNetwork(cmdlineOptions, conf)) {
registerWithNetwork(cmdlineOptions, conf) registerWithNetwork(cmdlineOptions, conf)
return true return true
} }
logStartupInfo(versionInfo, cmdlineOptions, conf) logStartupInfo(versionInfo, cmdlineOptions, conf)
try { try {
cmdlineOptions.baseDirectory.createDirectories() cmdlineOptions.baseDirectory.createDirectories()