kubeedge / edgemesh

Simplified network and services for edge applications
https://edgemesh.netlify.app/
Apache License 2.0
262 stars 134 forks source link

edgemesh-agent throw invalid memory address or nil pointer dereference,then exit #472

Open taoyonggang opened 1 year ago

taoyonggang commented 1 year ago

What happened:

edgemesh-agent start failed when using kubeflow.

this is the logs:

 E0613 10:20:24.945193       1 util.go:116] destination rule object knative-serving/knative .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945236       1 util.go:116] destination rule object kubeflow/metadata-grpc-service .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945262       1 util.go:116] destination rule object kubeflow/ml-pipeline .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945283       1 util.go:116] destination rule object kubeflow/ml-pipeline-minio .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945305       1 util.go:116] destination rule object kubeflow/ml-pipeline-mysql .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945326       1 util.go:116] destination rule object kubeflow/ml-pipeline-ui .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945355       1 util.go:116] destination rule object kubeflow/ml-pipeline-visualizationserver .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945375       1 util.go:116] destination rule object kubeflow-user-example-com/ml-pipeline-visualizationserver .Spec.TrafficPolicy.LoadBalancer is nil

 E0613 10:20:24.945412       1 loadbalancer.go:578] unsupported loadBalance policy 

 E0613 10:20:24.986106       1 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)

 goroutine 365 [running]:

 k8s.io/apimachinery/pkg/util/runtime.logPanic({0x20733e0, 0x3d55320})

    /code/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0x7d

 k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc0016ee8f0})

    /code/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x75

 panic({0x20733e0, 0x3d55320})

    /usr/local/go/src/runtime/panic.go:1038 +0x215

 github.com/kubeedge/edgemesh/pkg/loadbalancer.(*LoadBalancer).OnDestinationRuleUpdate(0xc000192600, 0xc001606c70, 0xc00000b0e0)

    /code/pkg/loadbalancer/loadbalancer.go:544 +0x497

 github.com/kubeedge/edgemesh/pkg/loadbalancer.(*LoadBalancer).handleUpdateDestinationRule(0xc00137f380, {0x237fce0, 0xc0018fb888}, {0x237fce0, 0xc00000b0e0})

    /code/pkg/loadbalancer/loadbalancer.go:267 +0x57

 k8s.io/client-go/tools/cache.ResourceEventHandlerFuncs.OnUpdate(...)

    /code/vendor/k8s.io/client-go/tools/cache/controller.go:238

 k8s.io/client-go/tools/cache.(*processorListener).run.func1()

    /code/vendor/k8s.io/client-go/tools/cache/shared_informer.go:785 +0x127

 k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x7f8e39bc19f0)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x67

 k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc001228738, {0x292d5c0, 0xc0013792c0}, 0x1, 0xc001237da0)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xb6

 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x0, 0x3b9aca00, 0x0, 0xe, 0xc001228788)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x89

 k8s.io/apimachinery/pkg/util/wait.Until(...)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90

 k8s.io/client-go/tools/cache.(*processorListener).run(0xc001328f80)

    /code/vendor/k8s.io/client-go/tools/cache/shared_informer.go:781 +0x6b

 k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1()

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:73 +0x5a

 created by k8s.io/apimachinery/pkg/util/wait.(*Group).Start

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:71 +0x88

 panic: runtime error: invalid memory address or nil pointer dereference [recovered]

    panic: runtime error: invalid memory address or nil pointer dereference

 [signal SIGSEGV: segmentation violation code=0x1 addr=0x38 pc=0x1d78e97]

 goroutine 365 [running]:

 k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc0016ee8f0})

    /code/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:55 +0xd8

 panic({0x20733e0, 0x3d55320})

    /usr/local/go/src/runtime/panic.go:1038 +0x215

 github.com/kubeedge/edgemesh/pkg/loadbalancer.(*LoadBalancer).OnDestinationRuleUpdate(0xc000192600, 0xc001606c70, 0xc00000b0e0)

    /code/pkg/loadbalancer/loadbalancer.go:544 +0x497

 github.com/kubeedge/edgemesh/pkg/loadbalancer.(*LoadBalancer).handleUpdateDestinationRule(0xc00137f380, {0x237fce0, 0xc0018fb888}, {0x237fce0, 0xc00000b0e0})

    /code/pkg/loadbalancer/loadbalancer.go:267 +0x57

 k8s.io/client-go/tools/cache.ResourceEventHandlerFuncs.OnUpdate(...)

    /code/vendor/k8s.io/client-go/tools/cache/controller.go:238

 k8s.io/client-go/tools/cache.(*processorListener).run.func1()

    /code/vendor/k8s.io/client-go/tools/cache/shared_informer.go:785 +0x127

 k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x7f8e39bc19f0)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x67

 k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc001228738, {0x292d5c0, 0xc0013792c0}, 0x1, 0xc001237da0)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xb6

 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x0, 0x3b9aca00, 0x0, 0xe, 0xc001228788)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x89

 k8s.io/apimachinery/pkg/util/wait.Until(...)

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90

 k8s.io/client-go/tools/cache.(*processorListener).run(0xc001328f80)

    /code/vendor/k8s.io/client-go/tools/cache/shared_informer.go:781 +0x6b

 k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1()

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:73 +0x5a

 created by k8s.io/apimachinery/pkg/util/wait.(*Group).Start

    /code/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:71 +0x88

What you expected to happen: it is running .

How to reproduce it (as minimally and precisely as possible): ..... Anything else we need to know?: ...... Environment:

Poorunga commented 1 year ago

Can I see your destinationrule file?

taoyonggang commented 1 year ago

how get it ?

taoyonggang commented 1 year ago

cloud agents is good. edge agents is bad.

Poorunga commented 1 year ago

You can get it by kubectl get destinationrule -o yaml