-
Notifications
You must be signed in to change notification settings - Fork 5k
Description
Dear Beats team!
We have a possible memory leak in Filebeat (identified in 7.9.3 at least).
Running Filebeat as a Daemonset in a Kubernetes cluster, using auto-discovery, and there's a memory leak that causes the pod to be restarted due to concurrent map read and write errors.
Update: there actually seems to be a goroutine leak in Filebeat, possibly related to the family of leaks seen in #12106 and #11263, but this is not related to the race condition originally reported.
Check if this is a regression or something that escaped #11263.
Trace originally reported:
fatal error: concurrent map read and map write
goroutine 1234 [running]:
runtime.throw()
/usr/local/go/src/runtime/panic.go:1116
runtime.mapaccess2_faststr()
/usr/local/go/src/runtime/map_faststr.go:116
github.com/elastic/beats/v7/libbeat/common/kubernetes/k8skeystore.(*KubernetesKeystoresRegistry).GetKeystore()
/go/src/github.com/elastic/beats/libbeat/common/kubernetes/k8skeystore/kubernetes_keystore.go:79
github.com/elastic/beats/v7/libbeat/autodiscover.Builders.GetConfig()
/go/src/github.com/elastic/beats/libbeat/autodiscover/builder.go:102
github.com/elastic/beats/v7/libbeat/autodiscover/providers/kubernetes.(*Provider).publish()
/go/src/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go:148
github.com/elastic/beats/v7/libbeat/autodiscover/providers/kubernetes.(*Provider).publish-fm()
/go/src/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go:141
github.com/elastic/beats/v7/libbeat/autodiscover/providers/kubernetes.(*pod).emitEvents()
/go/src/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/pod.go:428
github.com/elastic/beats/v7/libbeat/autodiscover/providers/kubernetes.(*pod).emit()
/go/src/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/pod.go:270
github.com/elastic/beats/v7/libbeat/autodiscover/providers/kubernetes.(*pod).OnUpdate.func1()
/go/src/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/pod.go:142
runtime.goexit()
I hope this helps tracking the issue!