elek opened a new pull request #946: HDDS-1669. SCM startup is failing if 
network-topology-default.xml is part of a jar
URL: https://github.com/apache/hadoop/pull/946
 
 
   network-topology-default.xml can be loaded from file or classpath. But the 
NodeSchemaLoader assumes that the files on the classpath can be opened as a 
file. It's true if the file is in etc/hadoop (which is part of the classpath) 
but not true if the file is packaged to a jajr file:
   
   {code}
   scm_1         | 2019-06-11 13:18:03 INFO  NodeSchemaLoader:118 - Loading 
file from 
jar:file:/opt/hadoop/share/ozone/lib/hadoop-hdds-common-0.5.0-SNAPSHOT.jar!/network-topology-default.xml
   scm_1         | 2019-06-11 13:18:03 ERROR NodeSchemaManager:74 - Failed to 
load schema file:network-topology-default.xml, error:
   scm_1         | java.lang.IllegalArgumentException: URI is not hierarchical
   scm_1         |      at java.io.File.<init>(File.java:418)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.net.NodeSchemaLoader.loadSchemaFromFile(NodeSchemaLoader.java:119)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.net.NodeSchemaManager.init(NodeSchemaManager.java:67)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.net.NetworkTopologyImpl.<init>(NetworkTopologyImpl.java:63)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManager.initializeSystemManagers(StorageContainerManager.java:382)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManager.<init>(StorageContainerManager.java:275)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManager.<init>(StorageContainerManager.java:208)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManager.createSCM(StorageContainerManager.java:586)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManagerStarter$SCMStarterHelper.start(StorageContainerManagerStarter.java:139)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManagerStarter.startScm(StorageContainerManagerStarter.java:115)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManagerStarter.call(StorageContainerManagerStarter.java:67)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManagerStarter.call(StorageContainerManagerStarter.java:42)
   scm_1         |      at picocli.CommandLine.execute(CommandLine.java:1173)
   scm_1         |      at picocli.CommandLine.access$800(CommandLine.java:141)
   scm_1         |      at 
picocli.CommandLine$RunLast.handle(CommandLine.java:1367)
   scm_1         |      at 
picocli.CommandLine$RunLast.handle(CommandLine.java:1335)
   scm_1         |      at 
picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243)
   scm_1         |      at 
picocli.CommandLine.parseWithHandlers(CommandLine.java:1526)
   scm_1         |      at 
picocli.CommandLine.parseWithHandler(CommandLine.java:1465)
   scm_1         |      at 
org.apache.hadoop.hdds.cli.GenericCli.execute(GenericCli.java:65)
   scm_1         |      at 
org.apache.hadoop.hdds.cli.GenericCli.run(GenericCli.java:56)
   scm_1         |      at 
org.apache.hadoop.hdds.scm.server.StorageContainerManagerStarter.main(StorageContainerManagerStarter.java:56)
   scm_1         | Failed to load schema file:network-topology-default.xml, 
error:
   {code}
   
   The quick fix is to keep the current behaviour but read the file from 
classloader.getResourceAsStream() instead of classloader.getResource().toURI()
   
   See: https://issues.apache.org/jira/browse/HDDS-1669

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to