ansh.gupta2
09/01/2026, 6:43 AMRocky
09/01/2026, 6:44 AMALTER SYSTEM ADD COMPUTE NODE ...).
* What it means: The FQDN (e.g., ...cn-28...) is already in the FE's internal list of nodes. This happens if the pod restarted or if a previous pod with the same name didn't unregister properly.
* Is it fatal? Usually no. Most StarRocks container scripts treat this error as a warning and proceed to the next step: run start_cn.sh. The fact that your log shows run start_cn.sh right after the error confirms the script didn't stop there.
2. The Probe Failures (connection refused / connection reset)
This is the real issue. Kubernetes is trying to check if the CN is healthy by hitting the health API on port 8040, but the connection is being refused.
* Startup Probe Failed: The CN process (starrocks_be or starrocks_cn) never successfully started and opened its web server.
* Liveness/Readiness Probe Failed: The container is being restarted because it’s not responding.
Common Causes for CN Startup Failures
Since the script reaches run start_cn.sh but the process never listens on port 8040, the process is likely crashing immediately. Check these common culprits:
1. CPU Instruction Set (AVX2): StarRocks CN/BE requires AVX2 instructions. If your AKS node pool uses older VM types that do not support AVX2, the CN binary will crash instantly with a SIGSEGV or illegal instruction error.
2. Shared-Data Configuration: Since you are using shared-data-cn, the node must be able to connect to your object storage (S3/GCS/MinIO). If the storage endpoint, bucket, or credentials in cn.conf are incorrect, the process will fail to initialize and exit.
3. Memory Limits: If the pod's memory limit is too low, the process might be killed by the OS immediately during its initial memory allocation (StarRocks typically requires at least 4GB-8GB to start reliably).
4. Ulimits (Open Files): StarRocks requires a high number of file descriptors (at least 65535). If the Kubernetes node or pod security context restricts this, the process may fail.
Recommended Next Steps
To find the specific crash reason, you need to look at the logs generated after the registration attempt:
* Check previous container logs:
bash
kubectl logs starrocks-shared-data-cn-3 -n starrocks-dev --previous
* Check the CN standard output log:
If you can exec into a crashing pod (or if you use a persistent log volume), look at:
/opt/starrocks/cn/log/cn.out or <http://cn.INFO|cn.INFO>.
* Verify AVX2 support on the AKS node:
bash
kubectl run -it --rm --image=busybox node-check --restart=Never -- grep avx2 /proc/cpuinfo
(If this returns nothing, your VM nodes are incompatible with this StarRocks version.)ansh.gupta2
09/01/2026, 6:45 AMansh.gupta2
09/01/2026, 6:46 AMRocky
09/01/2026, 6:46 AMansh.gupta2
09/01/2026, 6:46 AMRocky
09/01/2026, 6:47 AMtext
ERROR 1064 (HY000) at line 1: Compute node already exists with same host ...
* What it means: When the pod starts, a helper script tries to register the node with the Front-End (FE). This error indicates that a node with that specific hostname/FQDN is already in the FE's internal list.
* Is it the cause of the crash? Likely no. Most StarRocks container scripts (like the ones in version 4.0.0) treat this as a warning and continue to the next step: run start_cn.sh.
* A suspicious detail: Your Kubernetes events are for pod cn-3, but the logs show the node is trying to register itself as cn-28. This suggests a configuration mismatch where the pod's identity is being incorrectly reported or hardcoded, which might lead to heartbeats failing later.
2. The Probe Failures (connection refused)
text
Liveness probe failed: Get "...:8040/api/health": dial tcp ...:8040: connect: connection refused
* What it means: Kubernetes is trying to check if the CN is healthy by hitting port 8040. "Connection refused" means the CN process is not running.
* Root Cause: The log ends at run start_cn.sh. If the process were starting correctly, you would see further output or the container would stay alive. Since it is in a BackOff state, the starrocks_be (CN) binary is likely crashing immediately after the script tries to launch it.
Common Reasons for Immediate CN Crashes in 4.0.0
Since the process dies before it even creates a log file (<http://cn.INFO|cn.INFO>), check these three primary suspects:
1. Missing AVX2 Instruction Set (Most Common):
StarRocks binaries (especially version 3.x and 4.x) require AVX2 support on the physical CPU. If your AKS node pool uses older VM generations that lack AVX2, the CN will crash instantly with an illegal instruction or Segmentation fault.
* Check this: Run kubectl run -it --rm --image=busybox node-check -- grep avx2 /proc/cpuinfo. If it returns nothing, your nodes are incompatible.
2. Known Startup Bug in 4.x:
There is a documented issue in some 4.0.x/4.1.x versions where the CN process can segmentation fault during static initialization (before it even starts its logging system). This often happens due to specific environment variable configurations or host-name resolution issues.
3. Memory/Resource Limits:
If the Pod has a low memory limit (e.g., < 4GB), the Linux OOM killer might terminate the process during its initial memory pre-allocation. Check the pod's exit status:
* Command: kubectl describe pod starrocks-shared-data-cn-3 -n starrocks-dev
* Look for Terminated with Reason: Error or OOMKilled and check the Exit Code. (Exit code 132 usually means illegal instruction/AVX2; 139 means Segfault).
Recommended Next Steps
1. Verify AVX2: Ensure your AKS VM size supports AVX2.
2. Check Identity: Verify why pod -cn-3 thinks it is -cn-28. Check your cn.conf or the environment variables in your Deployment/StatefulSet manifest (specifically HOSTNAME or STARROCKS_HOSTNAME).
3. Inspect Dmesg: If you have access to the AKS node, run dmesg | grep starrocks to see if the kernel is reporting a segmentation fault or an illegal instruction.
4. Try a Stable Version: If you are testing, try rolling back to the latest stable 3.x image to see if the behavior persists on your current hardware.
References
• faq/shared_data_faq.md
• quick_start/shared-data.md
• deployment/deploy_manually.md
• deployment/shared_data/s3.md