[ 
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]

Reply via email to