From 8f49c7aa670c49c95958ded24c65bab6790d3614 Mon Sep 17 00:00:00 2001 From: Holger Obermaier <40787752+ho-ob@users.noreply.github.com> Date: Thu, 5 Feb 2026 14:48:49 +0100 Subject: [PATCH] Fixed Error return value of is not checked (errcheck) --- collectors/cpufreqCpuinfoMetric.go | 13 +++++++++++-- collectors/cpustatMetric.go | 12 ++++++++++-- collectors/diskstatMetric.go | 12 ++++++++++-- collectors/iostatMetric.go | 12 ++++++++++-- collectors/likwidMetric.go | 12 ++++++++++-- collectors/memstatMetric.go | 6 +++++- collectors/netstatMetric.go | 12 ++++++++++-- collectors/numastatsMetric.go | 6 +++++- collectors/schedstatMetric.go | 12 ++++++++++-- 9 files changed, 81 insertions(+), 16 deletions(-) diff --git a/collectors/cpufreqCpuinfoMetric.go b/collectors/cpufreqCpuinfoMetric.go index 3c66cac..014bc09 100644 --- a/collectors/cpufreqCpuinfoMetric.go +++ b/collectors/cpufreqCpuinfoMetric.go @@ -57,7 +57,6 @@ func (m *CPUFreqCpuInfoCollector) Init(config json.RawMessage) error { if err != nil { return fmt.Errorf("failed to open file '%s': %v", cpuInfoFile, err) } - defer file.Close() // Collect topology information from file cpuinfo foundFreq := false @@ -87,6 +86,10 @@ func (m *CPUFreqCpuInfoCollector) Init(config json.RawMessage) error { } } + if err := file.Close(); err != nil { + return fmt.Errorf("%s Init(): Call to file.Close() failed: %w", m.name, err) + } + // were all topology information collected? if foundFreq && len(processor) > 0 && @@ -141,7 +144,13 @@ func (m *CPUFreqCpuInfoCollector) Read(interval time.Duration, output chan lp.CC fmt.Sprintf("Read(): Failed to open file '%s': %v", cpuInfoFile, err)) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", cpuInfoFile, err)) + } + }() processorCounter := 0 now := time.Now() diff --git a/collectors/cpustatMetric.go b/collectors/cpustatMetric.go index fdb9cde..50c322a 100644 --- a/collectors/cpustatMetric.go +++ b/collectors/cpustatMetric.go @@ -157,9 +157,17 @@ func (m *CpustatCollector) Read(interval time.Duration, output chan lp.CCMessage file, err := os.Open(string(CPUSTATFILE)) if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to open file '%s': %v", string(CPUSTATFILE), err)) } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", string(CPUSTATFILE), err)) + } + }() scanner := bufio.NewScanner(file) for scanner.Scan() { diff --git a/collectors/diskstatMetric.go b/collectors/diskstatMetric.go index 8176790..0d9d266 100644 --- a/collectors/diskstatMetric.go +++ b/collectors/diskstatMetric.go @@ -72,10 +72,18 @@ func (m *DiskstatCollector) Read(interval time.Duration, output chan lp.CCMessag file, err := os.Open(MOUNTFILE) if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to open file '%s': %v", MOUNTFILE, err)) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", MOUNTFILE, err)) + } + }() part_max_used := uint64(0) scanner := bufio.NewScanner(file) diff --git a/collectors/iostatMetric.go b/collectors/iostatMetric.go index e429d4d..d93056b 100644 --- a/collectors/iostatMetric.go +++ b/collectors/iostatMetric.go @@ -141,10 +141,18 @@ func (m *IOstatCollector) Read(interval time.Duration, output chan lp.CCMessage) file, err := os.Open(IOSTATFILE) if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to open file '%s': %v", IOSTATFILE, err)) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", IOSTATFILE, err)) + } + }() scanner := bufio.NewScanner(file) for scanner.Scan() { diff --git a/collectors/likwidMetric.go b/collectors/likwidMetric.go index 74a65a5..d38128b 100644 --- a/collectors/likwidMetric.go +++ b/collectors/likwidMetric.go @@ -386,10 +386,18 @@ func (m *LikwidCollector) takeMeasurement(evidx int, evset LikwidEventsetConfig, // Watch changes for the lock file () watcher, err := fsnotify.NewWatcher() if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("takeMeasurement(): Failed to create a new fsnotify.Watcher: %v", err)) return true, err } - defer watcher.Close() + defer func() { + if err := watcher.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("takeMeasurement(): Failed to close fsnotify.Watcher: %v", err)) + } + }() if len(m.config.LockfilePath) > 0 { // Check if the lock file exists info, err := os.Stat(m.config.LockfilePath) diff --git a/collectors/memstatMetric.go b/collectors/memstatMetric.go index ba035f4..e8a0612 100644 --- a/collectors/memstatMetric.go +++ b/collectors/memstatMetric.go @@ -58,7 +58,11 @@ func getStats(filename string) map[string]MemstatStats { if err != nil { cclog.Error(err.Error()) } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.Error(err.Error()) + } + }() scanner := bufio.NewScanner(file) for scanner.Scan() { diff --git a/collectors/netstatMetric.go b/collectors/netstatMetric.go index 57833a4..e9dd131 100644 --- a/collectors/netstatMetric.go +++ b/collectors/netstatMetric.go @@ -197,10 +197,18 @@ func (m *NetstatCollector) Read(interval time.Duration, output chan lp.CCMessage file, err := os.Open(NETSTATFILE) if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to open file '%s': %v", NETSTATFILE, err)) return } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", NETSTATFILE, err)) + } + }() scanner := bufio.NewScanner(file) for scanner.Scan() { diff --git a/collectors/numastatsMetric.go b/collectors/numastatsMetric.go index 969ef23..b528918 100644 --- a/collectors/numastatsMetric.go +++ b/collectors/numastatsMetric.go @@ -188,7 +188,11 @@ func (m *NUMAStatsCollector) Read(interval time.Duration, output chan lp.CCMessa t.previousValues[key] = value } } - file.Close() + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", t.file, err)) + } } } diff --git a/collectors/schedstatMetric.go b/collectors/schedstatMetric.go index a9ce9df..1f5ee5a 100644 --- a/collectors/schedstatMetric.go +++ b/collectors/schedstatMetric.go @@ -137,9 +137,17 @@ func (m *SchedstatCollector) Read(interval time.Duration, output chan lp.CCMessa file, err := os.Open(string(SCHEDSTATFILE)) if err != nil { - cclog.ComponentError(m.name, err.Error()) + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to open file '%s': %v", string(SCHEDSTATFILE), err)) } - defer file.Close() + defer func() { + if err := file.Close(); err != nil { + cclog.ComponentError( + m.name, + fmt.Sprintf("Read(): Failed to close file '%s': %v", string(SCHEDSTATFILE), err)) + } + }() scanner := bufio.NewScanner(file) for scanner.Scan() {