From 822d15f192e7816fe6fde89052eb9af07f96fff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Fri, 9 Oct 2026 11:22:01 +0200 Subject: [PATCH] iis: keep partial collector cleanup safe (#2605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- internal/collector/iis/cache_metrics_test.go | 5 +++++ internal/collector/iis/iis.go | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/collector/iis/cache_metrics_test.go b/internal/collector/iis/cache_metrics_test.go index 336f51d8..eee05383 100644 --- a/internal/collector/iis/cache_metrics_test.go +++ b/internal/collector/iis/cache_metrics_test.go @@ -133,3 +133,8 @@ func (f cacheFixture[T]) Collect(dst *[]T) error { } func (f cacheFixture[T]) Close() {} + +func TestCloseBeforeCacheProviderInitialization(t *testing.T) { + t.Parallel() + require.NoError(t, New(nil).Close()) +} diff --git a/internal/collector/iis/iis.go b/internal/collector/iis/iis.go index 1921ec92..5e01676b 100644 --- a/internal/collector/iis/iis.go +++ b/internal/collector/iis/iis.go @@ -158,9 +158,16 @@ func (c *Collector) Close() error { c.perfDataCollectorWebService.Close() c.perfDataCollectorHttpServiceRequestQueues.Close() c.perfDataCollectorAppPoolWAS.Close() - c.w3SVCW3WPPerfDataCollector.Close() + + if c.w3SVCW3WPPerfDataCollector != nil { + c.w3SVCW3WPPerfDataCollector.Close() + } + c.w3SVCW3WPPerfDataCollectorV8.Close() - c.serviceCachePerfDataCollector.Close() + + if c.serviceCachePerfDataCollector != nil { + c.serviceCachePerfDataCollector.Close() + } return nil }