cilium / cilium/proxy

cilium-envoy failing on RPi4 + RaspbianOS

Open
#1,027 14 comments 1 reaction 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.