Skip to content

Troubleshooting a cluster

Start with stratumctl admin readiness: each finding names its fix. Findings clear by themselves once the gap closes. For a single node’s install problems, see Troubleshooting the install.

Symptom Fix
Stage 1’s code check fails It names the part. The address does not answer: check the NIC, the address and that a code is live (TCP 9444). The code is wrong, expired or burned: create a new one.
The cluster runs another release (RELEASE_MISMATCH) Install from the ISO the message names, or let an older ISO upgrade itself.
The machine never appears in joins list On the machine, journalctl -u stratum-join. Replace a wrong code with stratum-installer join --endpoint ADDRESS --code CODE.
It is needs-upgrade for long See what it waits for and the last failure in joins list. The release must still be available to the cluster.
Approved, but not joining WAITING FOR says why: the cluster is not READY, another node is joining, an upgrade runs, or a node has not applied the membership.
Stuck at join/patroni Postgres on the joiner is not streaming from the primary. journalctl -u postgres-ha on the joiner has the cause.
A join failed The step and error are on the record. Fix the cause, then stratumctl admin nodes joins retry <id>.
Refused: more than 16 waiting, or an upgrade is running Approve or reject the waiting ones, or try again after the upgrade.
MembershipLagging A node has not applied the membership: journalctl -u stratum-membership-converge on it.
Finding or symptom Fix
StoragePathMTU, OverlayPathMTU A network’s MTU is above what its path carries. Fix the path or lower the MTU.
BondDegraded A bond has fewer than two ports attached, or a port has no link. cat /proc/net/bonding/<bond> on the node.
ProviderTopologyDisagrees A node wires VM traffic another way than the cluster. Reinstall it as a joiner: the approval defaults to the cluster’s.
ProviderUplinkMissing A bridged node has no uplink on its provider bridge, so its floating IPs go nowhere. Fix its provider NIC or VLAN.
UnderlayRoleMismatch A node’s links do not carry what the cluster declares, so cross-node instance traffic is dropped. Compare its NIC roles.
Instances on different nodes cannot talk Overlay MTU, or the overlay VLAN is not trunked between the nodes.
Symptom Fix
Setting up Ceph does not start A node’s storage path fails its MTU, cephadm is missing or the wrong version on a node (CephadmMissing, CephadmVersionMismatch), or a host has too little memory. The status names which.
CephBootstrapFailed Fix the reason in the message, then ask again.
409 NO_STORAGE_CLASS Create a storage class.
Object storage and managed databases disabled Deploy the object gateway.
OperatorRecipeNeverBuilt Build the operator images.
Ceph in HEALTH_WARN after maintenance A flag was left on: unset it (Ceph).
CEPHADM_REFRESH_FAILED A device scan stuck after a failover: reboot the node once.
Symptom Fix
The API does not answer curl http://NODE:8443/startupz on each node names the phase it is in. postgres-wait for long means a wedged raft: Recovery.
An address (VIP) is not held by anyone A service has no leader, or keepalived on the holder is down. GET /v1/ha/status, then journalctl -u keepalived.
A node shows unknown Its heartbeat lapsed. Power it on or repair it: when a node dies.
TimeNotSynced A node’s clock is not synchronised: check its NTP servers.
What Where
A node’s install /var/log/stratum/install.log, and stratum-installer diagnostics -o diagnostics.tgz on the first node
A joiner journalctl -u stratum-join
Membership and peer lists journalctl -u stratum-membership-converge
Raft self-repair journalctl -u stratum-raft-doctor
The control plane journalctl -u stratum-controlplane

The cluster’s logs are also in the platform’s log store; see Observability.