From b57f5bab2db45eb5b7cce6b54d2ad15250facc03 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sat, 26 Jul 2025 18:35:01 +0100 Subject: [PATCH] Fix logging race in systemd_linux.go (#3364) The same variable was used for timing every parallel operation. Signed-off-by: Bryan Boreham --- collector/systemd_linux.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/collector/systemd_linux.go b/collector/systemd_linux.go index a21cc3cb..b8378ee3 100644 --- a/collector/systemd_linux.go +++ b/collector/systemd_linux.go @@ -228,7 +228,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error { wg.Add(1) go func() { defer wg.Done() - begin = time.Now() + begin := time.Now() c.collectUnitStatusMetrics(conn, ch, units) c.logger.Debug("collectUnitStatusMetrics took", "duration_seconds", time.Since(begin).Seconds()) }() @@ -237,7 +237,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error { wg.Add(1) go func() { defer wg.Done() - begin = time.Now() + begin := time.Now() c.collectUnitStartTimeMetrics(conn, ch, units) c.logger.Debug("collectUnitStartTimeMetrics took", "duration_seconds", time.Since(begin).Seconds()) }() @@ -247,7 +247,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error { wg.Add(1) go func() { defer wg.Done() - begin = time.Now() + begin := time.Now() c.collectUnitTasksMetrics(conn, ch, units) c.logger.Debug("collectUnitTasksMetrics took", "duration_seconds", time.Since(begin).Seconds()) }() @@ -257,7 +257,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error { wg.Add(1) go func() { defer wg.Done() - begin = time.Now() + begin := time.Now() c.collectTimers(conn, ch, units) c.logger.Debug("collectTimers took", "duration_seconds", time.Since(begin).Seconds()) }() @@ -266,13 +266,13 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error { wg.Add(1) go func() { defer wg.Done() - begin = time.Now() + begin := time.Now() c.collectSockets(conn, ch, units) c.logger.Debug("collectSockets took", "duration_seconds", time.Since(begin).Seconds()) }() if systemdVersion >= minSystemdVersionSystemState { - begin = time.Now() + begin := time.Now() err = c.collectSystemState(conn, ch) c.logger.Debug("collectSystemState took", "duration_seconds", time.Since(begin).Seconds()) }