From 4b91a637b3a4d7b6a3bd857953f611e2fdeaeaed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20P=C3=A9rez-Aradros=20Herce?= Date: Thu, 1 Mar 2018 18:05:47 -0800 Subject: [PATCH] add_kubernetes_metadata: Do not process nil pod events (#6487) While the root cause is unclear, this change adds defensive code against nil Pod processing errors. It also adds more logging to debug this further. Fixes #6372 --- CHANGELOG.asciidoc | 2 ++ libbeat/processors/add_kubernetes_metadata/kubernetes.go | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b07ba8a499b6..62ee7bb08caa 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,8 @@ https://github.com/elastic/beats/compare/v6.2.2...6.2[Check the HEAD diff] *Affecting all Beats* +- Avoid panic errors when processing nil Pod events in add_kubernetes_metadata. {issue}6372[6372] + *Auditbeat* *Filebeat* diff --git a/libbeat/processors/add_kubernetes_metadata/kubernetes.go b/libbeat/processors/add_kubernetes_metadata/kubernetes.go index bf7e49c9fa85..dabd22e2386d 100644 --- a/libbeat/processors/add_kubernetes_metadata/kubernetes.go +++ b/libbeat/processors/add_kubernetes_metadata/kubernetes.go @@ -168,8 +168,8 @@ func (k *kubernetesAnnotator) worker() { // Run pod actions while handling errors func processEvent(f func(pod *kubernetes.Pod), event bus.Event) { pod, ok := event["pod"].(*kubernetes.Pod) - if !ok { - logp.Err("Couldn't get a pod from watcher event") + if !ok || pod == nil { + logp.Err("Couldn't get a pod from watcher event: %v", event) return } f(pod)