From 6733c673b9285a7f9c62bf9f162d7b3aeca1a50c Mon Sep 17 00:00:00 2001 From: weli-l <1289113577@qq.com> Date: Sat, 31 Aug 2024 15:14:10 +0800 Subject: [PATCH 1/2] fix verifier log omitted Signed-off-by: weli-l <1289113577@qq.com> --- pkg/bpf/bpf.go | 8 +++++++- pkg/bpf/bpf_kmesh_l4_workload.go | 17 +++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/pkg/bpf/bpf.go b/pkg/bpf/bpf.go index 3939b68af..d519cc0f7 100644 --- a/pkg/bpf/bpf.go +++ b/pkg/bpf/bpf.go @@ -21,6 +21,7 @@ package bpf // #include "cluster/cluster.pb-c.h" import "C" import ( + "errors" "fmt" "hash/fnv" "os" @@ -68,6 +69,7 @@ func NewBpfLoader(config *options.BpfConfig) *BpfLoader { } func (l *BpfLoader) StartAdsMode() (err error) { + var ve *ebpf.VerifierError if l.obj, err = NewBpfKmesh(l.config); err != nil { return err } @@ -79,7 +81,11 @@ func (l *BpfLoader) StartAdsMode() (err error) { }() if err = l.obj.Load(); err != nil { - return fmt.Errorf("bpf Load failed, %s", err) + l.Stop() + if errors.As(err, &ve) { + return fmt.Errorf("bpf Load failed: %+v", ve) + } + return fmt.Errorf("bpf Load failed: %v", err) } if err = l.obj.Attach(); err != nil { diff --git a/pkg/bpf/bpf_kmesh_l4_workload.go b/pkg/bpf/bpf_kmesh_l4_workload.go index fb6fcd437..9da7c2fd0 100644 --- a/pkg/bpf/bpf_kmesh_l4_workload.go +++ b/pkg/bpf/bpf_kmesh_l4_workload.go @@ -17,8 +17,11 @@ package bpf import ( + "errors" "fmt" + "github.com/cilium/ebpf" + "kmesh.net/kmesh/daemon/options" ) @@ -54,14 +57,24 @@ func newWorkloadBpf(cfg *options.BpfConfig) (*BpfKmeshWorkload, error) { func (l *BpfLoader) StartWorkloadMode() error { var err error + var ve *ebpf.VerifierError if l.workloadObj, err = newWorkloadBpf(l.config); err != nil { return err } - if err = l.workloadObj.Load(); err != nil { + defer func() { + if err != nil { + l.Stop() + } + }() + + if err = l.obj.Load(); err != nil { l.Stop() - return fmt.Errorf("bpf Load failed, %s", err) + if errors.As(err, &ve) { + return fmt.Errorf("bpf Load failed: %+v", ve) + } + return fmt.Errorf("bpf Load failed: %v", err) } if err = l.workloadObj.Attach(); err != nil { From 1375e390099e2e08efc39bd104991ee04390c9ab Mon Sep 17 00:00:00 2001 From: weli-l <1289113577@qq.com> Date: Sat, 31 Aug 2024 15:36:54 +0800 Subject: [PATCH 2/2] remove l.Stop() Signed-off-by: weli-l <1289113577@qq.com> --- pkg/bpf/bpf.go | 1 - pkg/bpf/bpf_kmesh_l4_workload.go | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/pkg/bpf/bpf.go b/pkg/bpf/bpf.go index d519cc0f7..a8a9aa650 100644 --- a/pkg/bpf/bpf.go +++ b/pkg/bpf/bpf.go @@ -81,7 +81,6 @@ func (l *BpfLoader) StartAdsMode() (err error) { }() if err = l.obj.Load(); err != nil { - l.Stop() if errors.As(err, &ve) { return fmt.Errorf("bpf Load failed: %+v", ve) } diff --git a/pkg/bpf/bpf_kmesh_l4_workload.go b/pkg/bpf/bpf_kmesh_l4_workload.go index 9da7c2fd0..199b78730 100644 --- a/pkg/bpf/bpf_kmesh_l4_workload.go +++ b/pkg/bpf/bpf_kmesh_l4_workload.go @@ -69,8 +69,7 @@ func (l *BpfLoader) StartWorkloadMode() error { } }() - if err = l.obj.Load(); err != nil { - l.Stop() + if err = l.workloadObj.Load(); err != nil { if errors.As(err, &ve) { return fmt.Errorf("bpf Load failed: %+v", ve) } @@ -78,7 +77,6 @@ func (l *BpfLoader) StartWorkloadMode() error { } if err = l.workloadObj.Attach(); err != nil { - l.Stop() return fmt.Errorf("bpf Attach failed, %s", err) } l.bpfLogLevel = l.workloadObj.SockConn.BpfLogLevel