зеркало из https://github.com/microsoft/BuildXL.git
Merged PR 750781: Fix retry logic for low disk space
When there is a low disk space, we cancel PipQueue and running pips by triggering SchedulerCancellationToken. The pips get cancelled and they have SandboxedProcessPipExecutionStatus.Canceled. However, we do not set RetryInfo for those pips, so Canceled sandboxed result is translated to PipResultStatus.Failed due to the lack of RetryInfo. The orchestrator receives pip results with Failed with no error logs, so we log DistributionPipFailedOnWorker errors. We should have set RetryInfo for those cancelled pips. Because we check environment.Context.CancellationToken instead of SchedulerCancellationToken, we skip setting RetryInfo. Context.CancellationToken is triggered when CTRL-C is pressed. SchedulerCancellationToken is triggered when we request termination in Scheduler. Related work items: #2121638
This commit is contained in:
Родитель
73eb343bd1
Коммит
46c8355816
|
@ -2217,7 +2217,7 @@ namespace BuildXL.Scheduler
|
|||
expectedCommitMb: expectedMemoryCounters.PeakCommitSizeMb,
|
||||
cancelMilliseconds: (int)(cancelTime?.TotalMilliseconds ?? 0));
|
||||
}
|
||||
else if (environment.Context.CancellationToken.IsCancellationRequested
|
||||
else if (environment.SchedulerCancellationToken.IsCancellationRequested
|
||||
&& environment.Configuration.Distribution.BuildRole == DistributedBuildRoles.Worker)
|
||||
{
|
||||
// The pip was cancelled due to the scheduler terminating on this distributed worker.
|
||||
|
|
Загрузка…
Ссылка в новой задаче