[
https://issues.apache.org/jira/browse/HDDS-1669?focusedWorklogId=257749&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-257749
]
ASF GitHub Bot logged work on HDDS-1669:
----------------------------------------
Author: ASF GitHub Bot
Created on: 11/Jun/19 13:48
Start Date: 11/Jun/19 13:48
Worklog Time Spent: 10m
Work Description: elek commented on 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]
Issue Time Tracking
-------------------
Worklog Id: (was: 257749)
Time Spent: 10m
Remaining Estimate: 0h
> SCM startup is failing if network-topology-default.xml is part of a jar
> -----------------------------------------------------------------------
>
> Key: HDDS-1669
> URL: https://issues.apache.org/jira/browse/HDDS-1669
> Project: Hadoop Distributed Data Store
> Issue Type: Bug
> Reporter: Elek, Marton
> Assignee: Elek, Marton
> Priority: Blocker
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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()
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]