Jitendra Shukla created HDDS-13955:
--------------------------------------

             Summary: Handle empty datanode.id file case gracefully
                 Key: HDDS-13955
                 URL: https://issues.apache.org/jira/browse/HDDS-13955
             Project: Apache Ozone
          Issue Type: Improvement
            Reporter: Jitendra Shukla


If the datanode.id file is empty Ozone datanode fails to startup with below 
mentioned exception.
{code:java}
2025-11-05 09:15:11,957 ERROR 
[main]-org.apache.hadoop.ozone.HddsDatanodeService: Exception in 
HddsDatanodeService.
java.lang.NullPointerException
at 
org.apache.hadoop.ozone.container.common.helpers.DatanodeIdYaml.readDatanodeIdFile(DatanodeIdYaml.java:96)
at 
org.apache.hadoop.ozone.container.common.helpers.ContainerUtils.readDatanodeDetailsFrom(ContainerUtils.java:176)
at 
org.apache.hadoop.ozone.HddsDatanodeService.initializeDatanodeDetails(HddsDatanodeService.java:444)
at 
org.apache.hadoop.ozone.HddsDatanodeService.start(HddsDatanodeService.java:224)
at 
org.apache.hadoop.ozone.HddsDatanodeService.start(HddsDatanodeService.java:210)
at 
org.apache.hadoop.ozone.HddsDatanodeService.call(HddsDatanodeService.java:178)
at org.apache.hadoop.ozone.HddsDatanodeService.call(HddsDatanodeService.java:95)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at 
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine.execute(CommandLine.java:2078)
at org.apache.hadoop.hdds.cli.GenericCli.execute(GenericCli.java:100)
at org.apache.hadoop.hdds.cli.GenericCli.run(GenericCli.java:91)
at 
org.apache.hadoop.ozone.HddsDatanodeService.main(HddsDatanodeService.java:160) 
{code}
The workaround for this issue is to fetch the datanode UUID from the VERSION 
file under hdds.datanode.dir directory and add the same to the datanode.id file 
in below format and then restart datanode.
{code:java}
!!org.apache.hadoop.ozone.container.common.helpers.DatanodeIdYaml$DatanodeDetailsYaml
 {
uuid: <uuid from the version file under hdds.datanode.id>
} {code}
We can handle this in a more graceful way by attempting to rebuild to file.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to