This is an automated email from the ASF dual-hosted git repository.
jojochuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone-site.git
The following commit(s) were added to refs/heads/master by this push:
new 3ab6b3abf0 HDDS-15029. Document troubleshooting for connectivity
issues (#551)
3ab6b3abf0 is described below
commit 3ab6b3abf0f57dfd4c2c7dd65a51d8f305d12a69
Author: YANG-SYUAN CHOU <[email protected]>
AuthorDate: Tue Oct 13 03:08:42 2026 +0800
HDDS-15029. Document troubleshooting for connectivity issues (#551)
---
docs/06-troubleshooting/18-client-connectivity.md | 1 +
docs/06-troubleshooting/19-connectivity.md | 171 ++++++++++++++++++++++
2 files changed, 172 insertions(+)
diff --git a/docs/06-troubleshooting/18-client-connectivity.md
b/docs/06-troubleshooting/18-client-connectivity.md
index 11f7d104ed..b8fc7b29af 100644
--- a/docs/06-troubleshooting/18-client-connectivity.md
+++ b/docs/06-troubleshooting/18-client-connectivity.md
@@ -65,5 +65,6 @@ The first command checks metadata (OM). The second checks
data read (Datanode).
## See also
+- [Troubleshooting connectivity issues](./connectivity) — OM, SCM, Recon, and
Datanode connection failures
- [HDDS-5916](https://issues.apache.org/jira/browse/HDDS-5916) — Kubernetes
pipeline issues after pod IP changes
- [HDDS-13124](https://issues.apache.org/jira/browse/HDDS-13124) — read path
and hostname configuration
diff --git a/docs/06-troubleshooting/19-connectivity.md
b/docs/06-troubleshooting/19-connectivity.md
new file mode 100644
index 0000000000..383caf1a0f
--- /dev/null
+++ b/docs/06-troubleshooting/19-connectivity.md
@@ -0,0 +1,171 @@
+---
+sidebar_label: Connectivity
+---
+
+# Troubleshooting connectivity issues
+
+Connection failures can cause Ozone clients and services to retry for a long
time before an operation fails. Identify which connection is failing before
changing retry or timeout settings.
+
+## Identify the failing connection
+
+| Symptom | Connection to check | Start here |
+| --- | --- | --- |
+| Metadata operations fail or repeatedly retry | Client to Ozone Manager (OM)
| [Client cannot connect to OM](#client-cannot-connect-to-om) |
+| Clients retry even though OM processes are running | OM to OM over Ratis |
[OM cannot elect a leader](#om-cannot-elect-a-leader) |
+| Writes fail while OM tries to allocate blocks | OM to Storage Container
Manager (SCM) | [OM cannot allocate blocks from
SCM](#om-cannot-allocate-blocks-from-scm) |
+| Datanode logs report failures connecting to Recon | Datanode to Recon |
[Datanode cannot connect to Recon](#datanode-cannot-connect-to-recon) |
+| Key metadata is available, but data reads or writes fail | Client to
Datanode, or Datanode to Datanode | [Client cannot read or write
data](#client-cannot-read-or-write-data) |
+
+## Common checks
+
+1. Find the first connection error in the logs, including its timestamp,
destination hostname or IP address, and port. Compare it with the destination
service logs at the same time.
+2. Check the configuration loaded by the process that initiates the
connection. Verify that its `ozone-site.xml` points to the intended cluster and
service endpoints.
+3. Test name resolution and TCP connectivity from that process's host or
container. A successful test from an administrator's workstation does not
establish connectivity from an OM, Datanode, or application container.
+
+ On Linux, for example, replace the placeholders with the endpoint from the
logs or effective configuration:
+
+ ```bash
+ getent hosts <hostname>
+ nc -vz -w 5 <hostname> <port>
+ ```
+
+4. On the destination host, verify that the service is running and listening
on the expected interface and port. Check routing, firewall rules, and
container network policies along the failing connection.
+
+Use the configured RPC or data transfer port, rather than the service's web UI
port. See [Default
Ports](../administrator-guide/configuration/basic/network/default-ports) for
reference; deployments can override these defaults.
+
+A successful TCP connection does not prove that an RPC request can succeed,
authentication is valid, or a leader is available. `Connection refused` can
indicate that no service is listening or a connection is actively rejected. A
timeout can indicate a network problem or an unresponsive service. Use logs
from both ends to distinguish these cases.
+
+Run the Ozone commands below with the deployment's client configuration and an
identity permitted to perform the operation. In a secure cluster, use valid
credentials. Authentication or authorization errors require separate
investigation from network failures.
+
+## Client cannot connect to OM
+
+### Symptoms
+
+Metadata operations, such as listing keys or fetching key information,
repeatedly retry or fail with connection errors naming an OM endpoint.
+
+### Checks
+
+- Check the client's `ozone.om.address` for a non-HA deployment.
+- For an HA deployment, check `ozone.om.service.ids`,
`ozone.om.nodes.<service-id>`, and each
`ozone.om.address.<service-id>.<node-id>`. Ensure that the operation selects
the intended service ID and that every configured OM endpoint is reachable from
the client.
+- Check whether the OM process is listening on its configured RPC port and
whether its logs show the request arriving.
+- If the RPC endpoints are reachable but requests still retry, check [OM
leader election](#om-cannot-elect-a-leader).
+
+### Fix
+
+Correct stale or incorrect client addresses, DNS entries, or network rules for
the failing endpoint. If OM is stopped, investigate its startup logs and
restore the service. Ensure that the client loads the corrected configuration
when it starts. See [Client
Failover](../administrator-guide/configuration/high-availability/client-failover)
for HA configuration and retry behavior.
+
+### Verify
+
+Repeat a metadata operation against an existing key in the intended cluster:
+
+```bash
+ozone sh key info <volume>/<bucket>/<key>
+```
+
+Confirm that it succeeds and that the original connection error no longer
occurs.
+
+## OM cannot elect a leader
+
+### Symptoms
+
+Clients repeatedly retry or report that no leader is available, even though OM
processes are running. OM logs show repeated elections or failures
communicating with Ratis peers.
+
+### Checks
+
+For an HA deployment, inspect the reported OM roles:
+
+```bash
+ozone admin om roles --service-id=<om-service-id>
+```
+
+This command requires a reachable OM RPC endpoint. If it fails, inspect each
OM's logs directly; a failed command alone does not prove that the cluster has
no leader.
+
+Check that a majority of the configured voting OMs are running and can
communicate with each other over their configured Ratis ports. The
client-facing OM RPC port and the OM Ratis port serve different purposes:
clients reaching OM does not establish that OM peers can communicate. Compare
the service IDs, node IDs, peer addresses, and Ratis configuration on all OMs.
Also check for startup errors, storage errors, or long pauses that prevent a
running OM from participating.
+
+### Fix
+
+Restore the unavailable voting OMs or the network connections between them so
that a majority can communicate. Correct inconsistent peer configuration using
the [OM HA configuration
guide](../administrator-guide/configuration/high-availability/om-ha).
Increasing client retries does not restore the majority needed to elect a
leader.
+
+### Verify
+
+Run the roles command again and confirm that it reports a leader. Repeat the
failed client operation and check OM logs for continuing election or peer
connection failures.
+
+## OM cannot allocate blocks from SCM
+
+### Symptoms
+
+Writes fail or repeatedly retry while OM allocates blocks. OM logs show
connection failures to SCM. Some metadata operations may still succeed.
+
+### Checks
+
+- From the OM host or container, check connectivity to the SCM block RPC
endpoint configured through `ozone.scm.block.client.address` and
`ozone.scm.block.client.port`. For HA, check the applicable service and node
settings described in the [SCM HA configuration
guide](../administrator-guide/configuration/high-availability/scm-ha).
+- Check SCM process health and logs. In an HA deployment, inspect the reported
roles:
+
+ ```bash
+ ozone admin scm roles
+ ```
+
+ This command requires SCM RPC connectivity. A successful result does not
independently verify the OM-to-SCM block RPC connection; test that endpoint
from OM as well.
+
+- If SCM responds with a safe mode or pipeline allocation error, investigate
that error separately. A reachable SCM may still be unable to allocate a block
because it is in safe mode or lacks a suitable pipeline.
+
+### Fix
+
+Restore the SCM service or HA leader, or correct the OM-to-SCM address and
network configuration identified by the checks. If the failure is caused by
safe mode or unavailable pipelines, restore the required Datanode and pipeline
health rather than increasing connection timeouts.
+
+### Verify
+
+Repeat the failed write using a new test key in a bucket where you have write
permission. Confirm that the write succeeds and OM no longer reports SCM
connection or block allocation failures.
+
+## Datanode cannot connect to Recon
+
+### Symptoms
+
+Datanode logs repeatedly report connection failures to Recon, and Recon's view
of Datanodes or containers may become stale.
+
+### Checks
+
+- Check `ozone.recon.address` in the configuration loaded by the affected
Datanode. This is Recon's RPC endpoint, not its HTTP web UI address.
+- From the Datanode host or container, verify that the configured Recon
endpoint resolves and accepts connections.
+- Check that Recon is running, listening on its RPC port, and processing
Datanode reports without errors.
+
+Recon is an optional monitoring service. Losing the Datanode-to-Recon
connection does not by itself explain a client read or write failure. If data
operations also fail, check their OM, SCM, and Datanode connections separately.
+
+### Fix
+
+Restore Recon or correct its configured RPC address, name resolution, or
network access from the affected Datanodes. Ensure that any configuration
changes are loaded by the affected processes.
+
+### Verify
+
+Confirm that the Datanode stops reporting Recon connection failures and that
Recon receives fresh reports from it. Opening the Recon web UI alone does not
verify the Datanode-to-Recon RPC connection.
+
+## Client cannot read or write data
+
+### Symptoms
+
+Key metadata operations succeed, but reads or writes fail with errors naming
Datanode endpoints. The failure may affect only some keys or pipelines.
+
+### Checks
+
+Compare metadata and data access for an existing key:
+
+```bash
+ozone sh key info <volume>/<bucket>/<key>
+ozone sh key cat <volume>/<bucket>/<key>
+```
+
+The first command checks metadata access through OM. The second also requires
data access to Datanodes. A successful metadata request does not establish that
the client can reach the Datanode data ports.
+
+Check the actual Datanode addresses and ports used by the failing request from
the client host or container. For S3 operations, check from the S3 Gateway host
or container, which connects to Ozone services on behalf of the S3 client. For
writes, also inspect Datanode logs for failed connections between pipeline
members.
+
+If the problem follows a pod restart, an IP address change, or the use of a
different client network, follow [Troubleshooting client
connectivity](./client-connectivity) for the hostname configuration checks.
+
+Check the availability of the replicas or EC blocks needed by the affected key
and the health of the write pipeline. A single stopped Datanode does not
necessarily make every read or write fail; the impact depends on the
replication configuration and the remaining available replicas or EC blocks.
+
+### Fix
+
+Restore the affected Datanode service or network path. Correct unreachable
advertised addresses or hostname resolution where the checks identify an
address problem. If the network is working but replicas or pipelines are
unavailable, investigate their health rather than treating the failure as a
client timeout problem.
+
+### Verify
+
+Repeat the read of the affected key and verify a write to a new test key in a
bucket where you have write permission. Read the new key back and compare its
content with the source. Confirm that the relevant client and Datanode logs no
longer show the original connection failures.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]