Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cilium fails to launch on ARM64: Binary cilium-envoy cannot be executed #17467

Closed
joestringer opened this issue Sep 24, 2021 · 2 comments
Closed
Labels
kind/question Frequently asked questions & answers. This issue will be linked from the documentation's FAQ.

Comments

@joestringer
Copy link
Member

A user on Slack reports:

I'm trying to run cilium on a mixed amd64 and arm64 cluster. However the arm64 server fails to run cilium. The error seems to be:
level=fatal msg="Envoy: Binary \"cilium-envoy\" cannot be executed" error="signal: aborted (core dumped)" subsys=envoy-manager

Upon further investigation by attempting to run the binary directly, they saw:

root@10:/home/cilium# cilium-envoy --version
external/com_github_google_tcmalloc/tcmalloc/system-alloc.cc:550] MmapAligned() failed (size, alignment) 1073741824 1073741824 @ 0x558548b104 0x558547dea0 0x558547e0fc 0x55854612d0 0x558438bb18 0x558545ea00 0x55843d14b0 0x55843f3840 0x558438cc48 0x5585508da8 0x7f9321d038
external/com_github_google_tcmalloc/tcmalloc/arena.cc:34] FATAL ERROR: Out of memory trying to allocate internal tcmalloc data (bytes, object-size) 131072 48 @ 0x558548b19c 0x5585461324 0x558438bb18 0x558545ea00 0x55843d14b0 0x55843f3840 0x558438cc48 0x5585508da8 0x7f9321d038
Aborted

Upstream tcmalloc has a related issue, google/tcmalloc#33 .

The user reports that adjusting tcmalloc configuration, the problem goes away:

Indeed, this is caused by tcmalloc's mis-assumption that aarch64's virtual address is always 48 bits. According to this post, it can be 39 bits depending on the kernel configuration. Unfortunately, my kernel happens to use 39-bit virtual addresses.
Two solutions:

  • Change tcmalloc's code to assume 39-bit virtual addresses.
  • Recompile the kernel with CONFIG_ARM64_VA_BITS_39=y

envoyproxy/envoy#15235 (comment)

@joestringer joestringer added the kind/question Frequently asked questions & answers. This issue will be linked from the documentation's FAQ. label Sep 24, 2021
@jovalle
Copy link

jovalle commented Dec 1, 2021

@joestringer Is this something that Cilium is adjusting for? Just tried 1.10.5 on an arm64 host and got the same error.

@joestringer
Copy link
Member Author

@jovalle I'm not aware of any Cilium settings for this, but I was not deeply involved in the ARM64 efforts.My interpretation of the answer provided by the user in Slack (copied above) was that they had to recompile their kernel to support these images. You might be able to find out more info by joining the Cilium slack and asking around, perhaps in the #arm64 channel.

bmcustodio added a commit to bmcustodio/cilium that referenced this issue Jul 8, 2022
If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. cilium#17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
bmcustodio added a commit that referenced this issue Jul 8, 2022
If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. #17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
aanm pushed a commit that referenced this issue Jul 8, 2022
If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. #17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
ldelossa pushed a commit to ldelossa/cilium that referenced this issue Jul 13, 2022
[ upstream commit a46e572 ]

If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. cilium#17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
Signed-off-by: Louis DeLosSantos <louis.delos@isovalent.com>
aanm pushed a commit that referenced this issue Jul 14, 2022
[ upstream commit a46e572 ]

If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. #17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
Signed-off-by: Louis DeLosSantos <louis.delos@isovalent.com>
gandro pushed a commit to gandro/cilium that referenced this issue Aug 4, 2022
[ upstream commit a46e572 ]

If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. cilium#17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
Signed-off-by: Louis DeLosSantos <louis.delos@isovalent.com>
Signed-off-by: Michi Mutsuzaki <michi@isovalent.com>
nbusseneau pushed a commit to nbusseneau/cilium that referenced this issue Aug 9, 2022
[ upstream commit a46e572 ]

If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. cilium#17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
dezmodue pushed a commit to dezmodue/cilium that referenced this issue Aug 10, 2022
If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. cilium#17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
tklauser pushed a commit that referenced this issue Aug 11, 2022
[ upstream commit a46e572 ]

If '--enable-l7-proxy' is set to 'false', there is no point in
performing the Envoy version check, and so it should be automatically
disabled. One of the motivations for this change is that in some
scenarios it's necessary to disable the L7 proxy to allow Cilium to
start (eg. #17467), but
specifying '--enable-l7-proxy=false' is not enough due to the version
check still being performed in this situation. This commit attempts to
improve the UX by disabling the version check if Envoy itself is
disabled.

Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
rpardini added a commit to rpardini/armbian-build that referenced this issue May 4, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 5, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 5, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 5, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 6, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 6, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 8, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 8, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 8, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 8, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 9, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 10, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 10, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 10, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 10, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 12, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 12, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 13, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 14, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 15, 2023
rpardini added a commit to rpardini/armbian-build that referenced this issue May 15, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 15, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 16, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 16, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 17, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 17, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 19, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 19, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 19, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 20, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 21, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 21, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 21, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 22, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
rpardini added a commit to rpardini/armbian-build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
igorpecovnik pushed a commit to armbian/build that referenced this issue May 23, 2023
…re eBPF/net stuff

- enable more eBPF/net stuff for Cilium
- switch to 48-bit virtual addresses, so we're tcmalloc compatible
  - see cilium/cilium#17467
  - see envoyproxy/envoy#15235 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/question Frequently asked questions & answers. This issue will be linked from the documentation's FAQ.
Projects
None yet
Development

No branches or pull requests

2 participants