From bfd6e089575134ddc47e74ec3fc015f8fc36258f Mon Sep 17 00:00:00 2001 From: Alina Mayorova <67507805+AR-May@users.noreply.github.com> Date: Wed, 8 Oct 2025 14:26:15 +0200 Subject: [PATCH] Fix bug with not passing schedulled node id to the task host task --- .../TaskExecutionHost/TaskExecutionHost.cs | 17 ++++++++++------- .../TaskFactories/AssemblyTaskFactory.cs | 1 - .../Instance/TaskFactories/TaskHostTask.cs | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs b/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs index 205ad622651..14c3b5534dd 100644 --- a/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs +++ b/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs @@ -1003,7 +1003,7 @@ private ITask InstantiateTask(int scheduledNodeId, IDictionary t return null; } - task = CreateTaskHostTaskForOutOfProcFactory(taskIdentityParameters, taskFactoryEngineContext, outOfProcTaskFactory); + task = CreateTaskHostTaskForOutOfProcFactory(taskIdentityParameters, taskFactoryEngineContext, outOfProcTaskFactory, scheduledNodeId); isTaskHost = true; } else @@ -1740,8 +1740,13 @@ private void DisplayCancelWaitMessage() /// Task identity parameters. /// The engine context to use for the task. /// The out-of-process task factory instance. + /// Node for which the task host should be called /// A TaskHostTask that will execute the inner task out of process, or null if task creation fails. - private ITask CreateTaskHostTaskForOutOfProcFactory(IDictionary taskIdentityParameters, TaskFactoryEngineContext taskFactoryEngineContext, IOutOfProcTaskFactory outOfProcTaskFactory) + private ITask CreateTaskHostTaskForOutOfProcFactory( + IDictionary taskIdentityParameters, + TaskFactoryEngineContext taskFactoryEngineContext, + IOutOfProcTaskFactory outOfProcTaskFactory, + int scheduledNodeId) { ITask innerTask; @@ -1791,19 +1796,17 @@ private ITask CreateTaskHostTaskForOutOfProcFactory(IDictionary // Clean up the original task since we're going to wrap it _taskFactoryWrapper.TaskFactory.CleanupTask(innerTask); -#pragma warning disable SA1111, SA1009 // Closing parenthesis should be on line of last parameter return new TaskHostTask( _taskLocation, _taskLoggingContext, _buildComponentHost, taskHostParameters, taskLoadedType, - true + true, #if FEATURE_APPDOMAIN - , AppDomainSetup + AppDomainSetup, #endif - ); -#pragma warning restore SA1111, SA1009 // Closing parenthesis should be on line of last parameter + scheduledNodeId); } } } diff --git a/src/Build/Instance/TaskFactories/AssemblyTaskFactory.cs b/src/Build/Instance/TaskFactories/AssemblyTaskFactory.cs index b02f17b639b..82f21f71ab7 100644 --- a/src/Build/Instance/TaskFactories/AssemblyTaskFactory.cs +++ b/src/Build/Instance/TaskFactories/AssemblyTaskFactory.cs @@ -389,7 +389,6 @@ internal ITask CreateTaskInstance( AddNetHostParams(ref mergedParameters, getProperty); } -#pragma warning disable SA1111, SA1009 // Closing parenthesis should be on line of last parameter TaskHostTask task = new TaskHostTask( taskLocation, taskLoggingContext, diff --git a/src/Build/Instance/TaskFactories/TaskHostTask.cs b/src/Build/Instance/TaskFactories/TaskHostTask.cs index f4ad97f634c..c51f2f78436 100644 --- a/src/Build/Instance/TaskFactories/TaskHostTask.cs +++ b/src/Build/Instance/TaskFactories/TaskHostTask.cs @@ -159,7 +159,7 @@ public TaskHostTask( #if FEATURE_APPDOMAIN AppDomainSetup appDomainSetup, #endif - int scheduledNodeId = -1) + int scheduledNodeId) { ErrorUtilities.VerifyThrowInternalNull(taskType);