From e952e2a691bfd63d3026b9fcef9d0cf1ac73f232 Mon Sep 17 00:00:00 2001 From: Anis Elleuch Date: Tue, 17 May 2022 15:43:25 +0100 Subject: [PATCH] audit/kafka: Fix quitting early after first logging (#14932) A recent commit created some regressions: - Kafka/Audit goroutines quit when the first log is sent - Missing doneCh initialization in Kafka audit --- internal/logger/target/http/http.go | 12 +++++++----- internal/logger/target/kafka/kafka.go | 13 ++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/internal/logger/target/http/http.go b/internal/logger/target/http/http.go index 056ad354f..f4c6eebed 100644 --- a/internal/logger/target/http/http.go +++ b/internal/logger/target/http/http.go @@ -179,11 +179,13 @@ func (h *Target) startHTTPLogger() { go func() { defer h.wg.Done() - select { - case entry := <-h.logCh: - h.logEntry(entry) - case <-h.doneCh: - return + for { + select { + case entry := <-h.logCh: + h.logEntry(entry) + case <-h.doneCh: + return + } } }() } diff --git a/internal/logger/target/kafka/kafka.go b/internal/logger/target/kafka/kafka.go index 02a47eb61..dabb243be 100644 --- a/internal/logger/target/kafka/kafka.go +++ b/internal/logger/target/kafka/kafka.go @@ -96,11 +96,13 @@ func (h *Target) startKakfaLogger() { go func() { defer h.wg.Done() - select { - case entry := <-h.logCh: - h.logEntry(entry) - case <-h.doneCh: - return + for { + select { + case entry := <-h.logCh: + h.logEntry(entry) + case <-h.doneCh: + return + } } }() } @@ -230,6 +232,7 @@ func (h *Target) Cancel() { func New(config Config) *Target { target := &Target{ logCh: make(chan interface{}, 10000), + doneCh: make(chan struct{}), kconfig: config, } return target