cilium-envoy failing on RPi4 + RaspbianOS
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 190
- Forks
- 99
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 30
Description
While trying to deploy cilium in my RPi4, cilium-envoy crashes wih:
external/com_github_google_tcmalloc/tcmalloc/system-alloc.cc:625] MmapAligned() failed - unable to allocate with tag (hint, size, alignment) - is something limiting address placement? 0x15acc0000000 1073741824 1073741824 @ 0x555ab304c4 0x555ab2c848 0x555ab2c1d4 0x555ab0ba40 0x555ab29ec8 0x555ab29c9c 0x555ab01208 0x555aa1a8e0 0x555aa19614 0x7fb577754c
external/com_github_google_tcmalloc/tcmalloc/arena.cc:58] FATAL ERROR: Out of memory trying to allocate internal tcmalloc data (bytes, object-size); is something preventing mmap from succeeding (sandbox, VSS limitations)? 131072 632 @ 0x555ab30834 0x555ab0bad0 0x555ab29ec8 0x555ab29c9c 0x555ab01208 0x555aa1a8e0 0x555aa19614 0x7fb577754c
I still have available RAM on the system. Further debugging might indicate that i am missing some Kernel enabled configs:
cat config-6.6.62+rpt-rpi-* | grep -E 'CONFIG_BPF_JIT|CONFIG_NET_SCH_INGRESS|CONFIG_CRYPTO_USER_API_HASH'
CONFIG_BPF_JIT=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_BPF_JIT=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_CRYPTO_USER_API_HASH=m
From page https://docs.cilium.io/en/latest/operations/system_requirements/#base-requirements. Cant really install linux-modules-extra-raspi from raspios unless i download and install the packages from the ubuntu which might be compatible.
Otherwise would need to rebuild the kernel?(which i never did) and might not persist changes between future updates./
Not exactly sure on the best course of action here:
cilium was deployed with cilium-cli downloaded directly on the RPi node with:
cilium install --helm-set ipam.operator.clusterPoolIPv6MaskSize=120 --helm-set ipv6.enabled=true --helm-set ipv4.enabled=false --helm-set routingMode=native --helm-set autoDirectNodeRoutes=true --helm-set ipv6NativeRoutingCIDR=bipbop::/64 --helm-set kubeProxyReplacement=true --helm-set ipam.operator.clusterPoolIPv6PodCIDRList="fd00:10:244::/104" --helm-set nodeinit.enabled=true --helm-set k8s.requireIPv6PodCIDR=true --helm-set k8sServiceHost=bipbop --helm-set k8sServicePort=6443 --helm-set hubble.enabled=true --helm-set hubble.relay.enabled=true
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the cilium-envoy deployment on the RPi4 with RaspbianOS and inspect the reported config-6.6.62+rpt-rpi-* kernel settings. Compare the available kernel configuration with Cilium's base requirements and determine whether the tcmalloc allocation failure is caused by kernel support or another platform limitation; document the confirmed resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux, raspberry-pi
- Domain
- embedded-iot, networking, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100