Skip to content

Installer succeeds on RHEL/Rocky 8 but binary fails at runtime: GLIBC_2.32/2.33/2.34 not found #155

Description

@gdziuba

Summary

KubeSolo v1.1.6 installer passes all pre-flight checks on Rocky Linux 8.10 (RHEL 8 family), installs the binary, starts the systemd service — and then immediately crash-loops because the binary requires GLIBC ≥ 2.32/2.33/2.34 while Rocky/RHEL 8 ships GLIBC 2.28.

Environment

  • OS: Rocky Linux 8.10 (Green Obsidian) — RHEL 8 family (platform:el8)
  • Kernel: 4.18.0-553.97.1.el8_10.x86_64
  • GLIBC version: 2.28 (shipped with el8)
  • KubeSolo version: 1.1.6

Installer output (passes all checks)

```
🔍 Detected glibc system
🔍 Detected init system: systemd
🔍 Detected environment: standard
🔍 Checking for Docker prerequisite conflicts...
✅ No Docker installation detected
🔍 Checking hostname RFC 1123 compliance...
✅ Hostname 'internal-edgehub-demo-aio' is RFC 1123 compliant
🔍 Checking iptables xt_comment module support...
✅ iptables with xt_comment module support verified
🔍 Checking for required cgroups controllers...
✅ All required cgroups v2 controllers are available: cpuset cpu io memory hugetlb pids rdma
🔍 Checking for running KubeSolo processes...
✅ No running KubeSolo processes found
...
✅ kubesolo installation completed!
```

Runtime failure (journalctl -u kubesolo)

```
kubesolo[8585]: /usr/local/bin/kubesolo: /lib64/libc.so.6: version GLIBC_2.33' not found (required by /usr/local/bin/kubesolo) kubesolo[8585]: /usr/local/bin/kubesolo: /lib64/libc.so.6: version GLIBC_2.32' not found (required by /usr/local/bin/kubesolo)
kubesolo[8585]: /usr/local/bin/kubesolo: /lib64/libc.so.6: version GLIBC_2.34' not found (required by /usr/local/bin/kubesolo) systemd[1]: kubesolo.service: Failed with result 'exit-code'. \``

Service enters a crash-restart loop indefinitely.

Root cause

The installer correctly detects a glibc-based system but does not check the glibc version. RHEL/Rocky 8 ships GLIBC 2.28; KubeSolo 1.1.6 requires ≥ 2.34 (first shipped in RHEL/Rocky 9, Ubuntu 22.04+, Debian 12+).

Note: cgroups v2 was a separate prerequisite also not met by default on el8 (requires systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all kernel parameter + reboot). After fixing cgroups, the installer passes all checks but the binary still fails.

Suggested fix

Add a glibc version check to the installer pre-flight, e.g.:

```bash
GLIBC_VERSION=$(ldd --version | head -1 | grep -oE '[0-9]+.[0-9]+$')
REQUIRED="2.32"
if ! awk "BEGIN{exit !($GLIBC_VERSION >= $REQUIRED)}"; then
echo "❌ Error: GLIBC $GLIBC_VERSION found, but KubeSolo requires >= $REQUIRED"
echo " RHEL/Rocky 8 ships GLIBC 2.28. Please use RHEL/Rocky 9, Ubuntu 22.04+, or Debian 12+."
exit 1
fi
```

This prevents the confusing "install succeeds, service immediately crash-loops" experience and gives operators an actionable error message.

Impact

Any operator attempting to install KubeSolo on RHEL 8 / Rocky 8 / CentOS Stream 8 will hit this silently passing install + crash-loop pattern. These are common enterprise Linux distributions still in wide use.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions