From 6e16de77381d964ef4264acc5eff363607fc8384 Mon Sep 17 00:00:00 2001 From: anemeth Date: Wed, 4 Mar 2026 10:12:19 -0800 Subject: [PATCH] fix: GetLocalGroups for RPC is too inconsistent in payload and response time to extract much value from adaptive timeout logic, and is causing data loss besides. Going to switch to static timeouts --- src/CommonLib/Processors/LocalGroupProcessor.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/CommonLib/Processors/LocalGroupProcessor.cs b/src/CommonLib/Processors/LocalGroupProcessor.cs index c2048b04..dbb0db33 100644 --- a/src/CommonLib/Processors/LocalGroupProcessor.cs +++ b/src/CommonLib/Processors/LocalGroupProcessor.cs @@ -23,7 +23,6 @@ public class LocalGroupProcessor private readonly AdaptiveTimeout _openDomainAdaptiveTimeout; private readonly AdaptiveTimeout _getAliasesAdaptiveTimeout; private readonly AdaptiveTimeout _openAliasAdaptiveTimeout; - private readonly AdaptiveTimeout _getMembersAdaptiveTimeout; private readonly AdaptiveTimeout _lookupPrincipalBySidAdaptiveTimeout; public LocalGroupProcessor(ILdapUtils utils, ILogger log = null) { @@ -36,7 +35,6 @@ public LocalGroupProcessor(ILdapUtils utils, ILogger log = null) { _openDomainAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger(nameof(ISAMServer.OpenDomain))); _getAliasesAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger(nameof(ISAMDomain.GetAliases))); _openAliasAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger(nameof(ISAMDomain.OpenAlias))); - _getMembersAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger(nameof(ISAMAlias.GetMembers))); _lookupPrincipalBySidAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger(nameof(ISAMServer.LookupPrincipalBySid))); } @@ -214,7 +212,7 @@ await SendComputerStatus(new CSVComputerStatus var localGroup = openAliasResult.Value; //Call GetMembersInAlias to get raw group members - var getMembersResult = await _getMembersAdaptiveTimeout.ExecuteRPCWithTimeout((_) => localGroup.GetMembers()); + var getMembersResult = await Timeout.ExecuteRPCWithTimeout(TimeSpan.FromMinutes(2), (_) => localGroup.GetMembers()); if (getMembersResult.IsFailed) { _log.LogTrace("Failed to get members in alias {Alias} with RID {Rid} in domain {Domain} on computer {ComputerName}: {Error}", alias.Name, alias.Rid, domainResult.Name, computerName, openAliasResult.Error);