Aleksandr Zakharchenko
08/27/2026, 1:44 PMRocky
08/27/2026, 1:45 PMcom.sleepycat.je.rep.InsufficientReplicasException, indicates that the FrontEnd (FE) node acting as the Master cannot find enough healthy "Follower" nodes to reach a quorum (SIMPLE_MAJORITY).
In a typical 3-node FE cluster, a quorum requires at least 2 nodes (1 Master + 1 Replica). Your log states required 1 replica. But none were active with this master, meaning the Master is running but no other FE nodes have successfully connected to it. This causes the FE process to exit, leading to the reboot cycle you see in Kubernetes.
Potential Causes and Solutions
1. Network Connectivity Issues (Most Likely in K8s)
The FE pods must be able to communicate with each other using the FQDNs shown in your logs (kube-starrocks-fe-0.kube-starrocks-fe-search...).
* Action: Ensure all FE pods (fe-0, fe-1, fe-2) are running. Check if they can reach each other on the edit log port (default 9010).
* Action: Verify that the Headless Service (kube-starrocks-fe-search) is correctly resolving the pod IPs.
2. Insufficient Active Follower Nodes
If you have a 3-node cluster but two FE pods are failing for other reasons (e.g., ImagePullBackOff, OOMKill, or disk pressure), the remaining Master cannot commit any metadata changes and will fail with this exception.
* Action: Run kubectl get pods to see if the other FE nodes are healthy. If they are also in a crash loop, check their logs for different errors (e.g., InsufficientLogException or Clock delta).
3. Clock Desynchronization
StarRocks FE nodes require synchronized clocks. If the time difference between nodes exceeds 5 seconds, the BDB JE replication will fail.
* Action: Check the fe.log on all nodes for a Clock delta: XXX ms ... exceeds max permissible delta error. Ensure NTP or a similar service is running on your Kubernetes nodes.
4. Metadata Corruption or Improper Helper Configuration
If you recently performed an upgrade or a manual migration, the BDB JE replication group might be in an inconsistent state.
* Action: If this is a recovery scenario and you are sure fe-0 has the latest metadata, you can try starting it with the recovery flag to force it to become the Master without a quorum. Note that this should be a last resort.
* Warning: In the FE configuration or start script, ensure the --helper points to the correct existing Master node if you are adding new nodes.
5. JVM Memory Pressure
The documentation notes that excessive Full GC pauses can cause nodes to be perceived as "down" by the Master, leading to this exception.
* Action: Check if the FE pods are hitting memory limits. You may need to increase the JVM heap size (-Xmx) in fe.conf.
Summary of Version Note
Note: StarRocks 4.1.3 is not a released version (current stable versions are in the 3.x branch). This may be a typo for 3.1.3 or a custom build. If you are using a very old or development version, consider moving to a stable 3.x release.
Recommended Next Step:
Check the logs of the other FE pods (fe-1 and fe-2). They likely contain the original error (like a network timeout or disk failure) that prevented them from joining the Master, which in turn caused the Master (fe-0) to crash with the InsufficientReplicasException.
References
• administration/Meta_recovery.md
• faq/Deploy_faq.md
• administration/management/enable_fqdn.mdAleksandr Zakharchenko
08/27/2026, 1:49 PMRocky
08/27/2026, 1:49 PMfe-1) reveal the root cause of the reboot cycle: Clock Desynchronization.
The specific error is:
com.sleepycat.je.rep.stream.ReplicaFeederHandshake.checkClockSkew ... exceeds max permissible delta: 5000 ms.
What is happening:
1. FE-1 (Follower) tries to connect to FE-0 (Master).
2. During the handshake, BDB JE (the metadata engine) checks the system time on both nodes.
3. If the time difference (skew) between the nodes is greater than 5 seconds (5000ms), the connection is rejected to prevent metadata inconsistency.
4. Because FE-1 cannot join, FE-0 (the Master) is left alone. In a 2-node deployment, a "simple majority" (quorum) requires both nodes to be active ($2/2 + 1$ is not possible, so it requires all nodes).
5. Since FE-0 cannot reach a quorum, it throws the InsufficientReplicasException you saw in your first log and shuts down.
How to fix it:
1. Synchronize Clocks (Recommended)
You must ensure the system clocks on the underlying Kubernetes worker nodes are synchronized.
* Check the time on the nodes running the FE pods: date -u.
* Install and enable NTP or Chrony on the host machines to keep the time in sync.
* Once the host clocks are aligned, restart the FE pods.
2. Increase the Permissible Delta (Workaround)
If you cannot immediately sync the clocks, you can temporarily increase the allowed skew in your fe.conf. Add or update this parameter:
properties
max_bdbje_clock_delta_ms = 10000
(Setting this to 10000 allows a 10-second difference. Restart the FEs after changing this.)
3. Recommendation on Cluster Size
You mentioned this is a two-node deployment.
* High Availability: A 2-node FE cluster provides no fault tolerance. If one node fails (or has a clock issue), the whole cluster becomes unwritable because it cannot reach a majority.
* Best Practice: Use 3 FE nodes for a production environment. This allows the cluster to remain functional even if one node fails.
Summary
The crash loop will persist until the time difference between fe-0 and fe-1 is less than the max_bdbje_clock_delta_ms (default 5s). Synchronizing the host clocks via NTP is the standard fix.
References
• quick_start/shared-data.md
• deployment/shared_data/azure.md
• deployment/shared_data/hdfs.md
• deployment/shared_data/s3.md