Skip to content

Conversation

@sreejasahithi
Copy link
Contributor

What changes were proposed in this pull request?

OzoneManager fails to start in non-HA mode when the following minimal config is used

  <property>
    <name>ozone.scm.names</name>
    <value>host1</value>
  </property>
  <property>
    <name>ozone.om.address</name>
    <value>host1:9862</value>
  </property>
  <property>
    <name>ozone.metadata.dirs</name>
    <value>/data/ozone/meta</value>
  </property> 

Error: ERROR om.OzoneManager: Could not initialize OM version filejava.io.IOException: Failed to get SCM info
Root Cause:
In non-HA mode, SCMNodeInfo.buildNodeInfo() resolves addresses using configuration fallback chains. The fallback chains do not include ozone.scm.names as a final fallback option so when only ozone.scm.names was configured (without explicit ozone.scm.client.address or ozone.scm.block.client.address), these lookups returned null, causing OzoneManager initialization to fail.

This fix adds ozone.scm.names as the final fallback for scmBlockClientAddress, scmClientAddress, scmSecurityClientAddress

What is the link to the Apache JIRA

HDDS-14249

How was this patch tested?

This patch was tested locally on a docker non-ha cluster.

Green CI : https://github.com/sreejasahithi/ozone/actions/runs/20706673375

Copy link
Contributor

@cchung100m cchung100m left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks to @sreejasahithi

Copy link
Contributor

@sarvekshayr sarvekshayr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sreejasahithi for working on this.

The JIRA description mentions that the issue was resolved after explicitly setting both ozone.scm.client.address and ozone.scm.datanode.address.
However, ozone.scm.datanode.address already falls back to om.scm.names. Why was it still necessary to set it explicitly in this case?
cc: @ssulav

@sreejasahithi
Copy link
Contributor Author

sreejasahithi commented Jan 12, 2026

Thanks @sreejasahithi for working on this.

The JIRA description mentions that the issue was resolved after explicitly setting both ozone.scm.client.address and ozone.scm.datanode.address. However, ozone.scm.datanode.address already falls back to om.scm.names. Why was it still necessary to set it explicitly in this case? cc: @ssulav

It wasn't necessary to explicitly set ozone.scm.datanode.address for OM to stop failing. In non-HA mode, datanodes directly use ozone.scm.names via HddsServerUtil.getSCMAddressForDatanodes()

Copy link
Contributor

@sadanand48 sadanand48 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thanks @sreejasahithi for the patch

Copy link
Contributor

@adoroszlai adoroszlai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sreejasahithi for the patch.

@adoroszlai adoroszlai merged commit 6007f86 into apache:master Jan 15, 2026
44 checks passed
@adoroszlai
Copy link
Contributor

Thanks @sreejasahithi for the patch, @cchung100m, @sadanand48, @sarvekshayr for the review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants