From a0e132b30ef884d63c6dd65b96dfd40c9ac0011b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Fri, 28 Feb 2025 07:53:23 +0100 Subject: [PATCH] terminal_services: fix panic in collect (#1906) --- .../terminal_services/terminal_services.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/collector/terminal_services/terminal_services.go b/internal/collector/terminal_services/terminal_services.go index 1b479b90..107345a2 100644 --- a/internal/collector/terminal_services/terminal_services.go +++ b/internal/collector/terminal_services/terminal_services.go @@ -139,13 +139,6 @@ func (c *Collector) Build(logger *slog.Logger, miSession *mi.Session) error { c.logger = logger.With(slog.String("collector", Name)) - var err error - - c.perfDataCollectorTerminalServicesSession, err = pdh.NewCollector[perfDataCounterValuesTerminalServicesSession](pdh.CounterTypeRaw, "Terminal Services Session", pdh.InstancesAll) - if err != nil { - return fmt.Errorf("failed to create Terminal Services Session collector: %w", err) - } - c.connectionBrokerEnabled = isConnectionBrokerServer(miSession) if c.connectionBrokerEnabled { @@ -250,11 +243,18 @@ func (c *Collector) Build(logger *slog.Logger, miSession *mi.Session) error { nil, ) + var err error + c.hServer, err = wtsapi32.WTSOpenServer("") if err != nil { return fmt.Errorf("failed to open WTS server: %w", err) } + c.perfDataCollectorTerminalServicesSession, err = pdh.NewCollector[perfDataCounterValuesTerminalServicesSession](pdh.CounterTypeRaw, "Terminal Services Session", pdh.InstancesAll) + if err != nil { + return fmt.Errorf("failed to create Terminal Services Session collector: %w", err) + } + return nil }