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
VTEP integration cause "Failed to start bpffs map migration" #18616
Comments
I'd suggest looking closely at the ELF files generated with either version, using |
good idea, I see the output for 3 or 4 VTEPs has: output for 4 VTEPs: readelf -e bpf_lxc-btf-problem.o
output for 1 or 2 VTEPs: readelf -e bpf_lxc.o
|
here is the code call site reference the global array macro in |
with no knowledge on llvm BPF target, I guess BPF BTF lack of
|
fyi, this error comes from https://github.com/cilium/ebpf/blob/master/elf_reader.go#L1032-L1034
|
With help from cilium/ebpf, we found out that when VTEP_ENDPOINT/VTEP_MAC member > 2 like below:
.rodata.cst32 will be generated by compiler for VTEP_MAC member
when VTEP_ENDPOINT/VTEP_MAC member <= 2, no single rodata section will be generated by compiler
no single rodata
|
from https://lore.kernel.org/bpf/41e809b6-62ac-355a-082f-559fa4b1ffea@fb.com/, it looks normal from compiler side |
Replace VTEP integration VTEP lookup with VTEP specific map implementation. This solves problem observed in cilium#18616 cilium/ebpf#553 Signed-off-by: Vincent Li <v.li@f5.com>
Is there an existing issue for this?
What happened?
when enable VTEP integration feature #17370 with
3
or4
VTEP devices like below in configmap cilium-configdeploying any pod like nginx or netshoot pod, pod will fail to start, kubectl describe pod gives error like below
cilium agent log will have error like:
this issue does not happen when only enable
1
or2
VTEP deviceI suspect the VTEP integration implementation of VTEP below
above creates macro in
node_config.h
at runtimeI suspect above might cause
error="Failed to start bpffs map migration: file 2631_next/bpf_lxc.o: load data sections: data section .rodata.cst32: can't get BTF: type .rodata.cst32: not found"
when VTEP is3
or4
, but oddly when VTEP is1
or2
with 1 or 2 VTEP_ENDPOINT, VTEP_MAC, no such issue.Cilium Version
cilium-cli: v0.10.0 compiled with go1.17.4 on linux/amd64
cilium image (default): v1.11.0
cilium image (stable): v1.11.1
cilium image (running): debug
Kernel Version
Linux centos-dev.localdomain 5.15.0+ #73 SMP PREEMPT Tue Nov 30 23:49:58 EST 2021 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.1", GitCommit:"5e58841cce77d4bc13713ad2b91fa0d961e69192", GitTreeState:"clean", BuildDate:"2021-05-12T14:18:45Z", GoVersion:"go1.16.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.9", GitCommit:"b631974d68ac5045e076c86a5c66fba6f128dc72", GitTreeState:"clean", BuildDate:"2022-01-19T17:45:53Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"}
Sysdump
cilium-sysdump-20220125-114400.zip
Relevant log output
Anything else?
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: