From 8b99f224f660fea5519ef8a715ed5a00672882b9 Mon Sep 17 00:00:00 2001 From: Rafael da Fonseca Date: Thu, 21 Nov 2024 16:57:45 +0000 Subject: [PATCH 1/3] Create a clone to release source struct from mem --- libbeat/autodiscover/autodiscover.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbeat/autodiscover/autodiscover.go b/libbeat/autodiscover/autodiscover.go index 364080519526..d8fda152ab81 100644 --- a/libbeat/autodiscover/autodiscover.go +++ b/libbeat/autodiscover/autodiscover.go @@ -300,7 +300,7 @@ func (a *Autodiscover) getMeta(event bus.Event) mapstr.M { a.logger.Errorf("Got a wrong meta field for event %v", event) return nil } - return meta + return meta.Clone() } // getID returns the event "id" field string if present From 5eba344e7c5a8e650e6a447a114ca0559bb97cbb Mon Sep 17 00:00:00 2001 From: Rafael da Fonseca Date: Thu, 21 Nov 2024 17:07:34 +0000 Subject: [PATCH 2/3] Cleanup meta on stop events --- libbeat/autodiscover/autodiscover.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libbeat/autodiscover/autodiscover.go b/libbeat/autodiscover/autodiscover.go index d8fda152ab81..7a5be48fefeb 100644 --- a/libbeat/autodiscover/autodiscover.go +++ b/libbeat/autodiscover/autodiscover.go @@ -283,6 +283,11 @@ func (a *Autodiscover) handleStop(event bus.Event) bool { updated = true } + // Cleanup meta references for this eventID + for configHash := range a.configs[eventID] { + a.meta.Remove(configHash) + } + delete(a.configs, eventID) return updated From cec9e2393bbc44c351d4db007bd0713118120587 Mon Sep 17 00:00:00 2001 From: Rafael da Fonseca Date: Fri, 22 Nov 2024 11:28:58 +0000 Subject: [PATCH 3/3] Add changelog entry --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 3685a377e3f6..5a83d6c9da9a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -115,6 +115,7 @@ https://github.com/elastic/beats/compare/v8.8.1\...main[Check the HEAD diff] - Ensure Elasticsearch output can always recover from network errors {pull}40794[40794] - Add `translate_ldap_attribute` processor. {pull}41472[41472] - Remove unnecessary debug logs during idle connection teardown {issue}40824[40824] +- Fix autodiscovery memory leak related to metadata of start events {pull}41748[41748] *Auditbeat*