in Public/Src/Engine/Dll/Tracing/Log.cs [489:1344]
public abstract void DistributionWorkerChangedState(
LoggingContext context,
string ipAddress,
int port,
string fromState,
string toState,
string caller);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerFinish,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Worker {ipAddress}:{port} will get disconnected by {caller}")]
public abstract void DistributionWorkerFinish(
LoggingContext context,
string ipAddress,
int port,
string caller);
[GeneratedEvent(
(ushort)LogEventId.DistributionCallWorkerCodeException,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Call to worker {name} raised exception: Function='{function}' Failure='{errorMessage}'")]
public abstract void DistributionCallWorkerCodeException(
LoggingContext context,
string name,
string function,
string errorMessage);
[GeneratedEvent(
(ushort)LogEventId.DistributionCallOrchestratorCodeException,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Call to orchestrator raised exception: Function='{function}' Failure='{errorMessage}'")]
public abstract void DistributionCallOrchestratorCodeException(
LoggingContext context,
string function,
string errorMessage);
[GeneratedEvent(
(ushort)LogEventId.RemoteWorkerProcessedExecutionBlob,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "'{workerName}' processed execution blob '{message}'.")]
public abstract void RemoteWorkerProcessedExecutionBlob(
LoggingContext context,
string workerName,
string message);
[GeneratedEvent(
(ushort)LogEventId.DistributionFailedToStoreValidationContentToWorkerCacheWithException,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
// This error is not forwarded to the orchestrator because doing so would cause the orchestrator to log an error when
// no pip fails in the build from its perspective. The worker must still log this as an error because it
// did fail.
Keywords = (int)(Keywords.UserMessage | Keywords.NotForwardedToOrchestrator),
EventTask = (ushort)Tasks.Distribution,
Message = "Could not load store content with hash '{contentHash}'."
+ " This may indicate that worker cache is incorrectly configured or is not properly shared.\n"
+ "Failure:\n{exceptionMessage}")]
public abstract void DistributionFailedToStoreValidationContentToWorkerCacheWithException(
LoggingContext context,
string contentHash,
string exceptionMessage);
[GeneratedEvent(
(ushort)LogEventId.DistributionFailedToRetrieveValidationContentFromWorkerCache,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Worker {workerName}: Could not load content with hash '{contentHash}' to validate connection to worker cache. This may indicate that worker cache is incorrectly configured or is not properly shared.")]
public abstract void DistributionFailedToRetrieveValidationContentFromWorkerCache(
LoggingContext context,
string workerName,
string contentHash);
[GeneratedEvent(
(ushort)LogEventId.DistributionFailedToRetrieveValidationContentFromWorkerCacheWithException,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Worker {workerName}: Could not load content with hash '{contentHash}' to validate connection to worker cache."
+ " This may indicate that worker cache is incorrectly configured or is not properly shared.\n"
+ "Exception:\n{exceptionMessage}")]
public abstract void DistributionFailedToRetrieveValidationContentFromWorkerCacheWithException(
LoggingContext context,
string workerName,
string contentHash,
string exceptionMessage);
[GeneratedEvent(
(ushort)LogEventId.DistributionSuccessfulRetryCallToWorker,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Retried call to worker {name} succeeded: Function='{function}'")]
public abstract void DistributionSuccessfulRetryCallToWorker(LoggingContext context, string name, string function);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerAttachTooSlow,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Attach completion notification from worker {name} is taking longer than expected ({time}). Ensure worker can connect to orchestrator.")]
public abstract void DistributionWorkerAttachTooSlow(LoggingContext context, string name, string time);
[GeneratedEvent(
(ushort)LogEventId.AttachmentFailureAfterOrchestratorExit,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Attaching to the orchestrator failed after we received an exit request from the orchestrator. This probably means that the worker was released before completing the attachment process. Call timeout: {minutes} min")]
public abstract void AttachmentFailureAfterOrchestratorExit(LoggingContext context, int minutes);
[GeneratedEvent(
(ushort)LogEventId.DistributionFailedToCallOrchestrator,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Failed call to orchestrator: Function='{function}' Failure='{errorMessage}'")]
public abstract void DistributionFailedToCallOrchestrator(LoggingContext context, string function, string errorMessage);
[GeneratedEvent(
(ushort)LogEventId.DistributionSuccessfulRetryCallToOrchestrator,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Retried call to orchestrator succeeded: Function='{function}'")]
public abstract void DistributionSuccessfulRetryCallToOchestrator(LoggingContext context, string function);
[GeneratedEvent(
(ushort)LogEventId.DistributionInactiveOrchestrator,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
// Treat this as a user error instead of an internal error. The orchestrator may very well still succeed when this happens.
Keywords = (int)(Keywords.UserMessage | Keywords.UserError),
EventTask = (ushort)Tasks.Distribution,
Message = "There were no calls from orchestrator in the last {timeinMin} minutes. Assuming it is dead and exiting.")]
public abstract void DistributionInactiveOrchestrator(LoggingContext context, int timeinMin);
[GeneratedEvent(
(ushort)LogEventId.DistributionWaitingForOrchestratorAttached,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage | Keywords.Progress),
EventTask = (ushort)Tasks.Distribution,
Message = "Waiting for orchestrator to attach")]
public abstract void DistributionWaitingForOrchestratorAttached(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionDisableServiceProxyInactive,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "The service proxy for service at '{name}::{port}' has been disabled due to exceeded allowed period of failed calls ({failureTime})")]
public abstract void DistributionDisableServiceProxyInactive(LoggingContext context, string name, int port, string failureTime);
[GeneratedEvent(
(ushort)LogEventId.DistributionStatistics,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Distribution-related times:\r\n{statistics}")]
public abstract void DistributionStatistics(LoggingContext context, string statistics);
[GeneratedEvent(
(ushort)LogEventId.DistributionExecutePipFailedNetworkFailure,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
Keywords = (int)Keywords.UserMessage | (int)Keywords.InfrastructureError,
EventTask = (ushort)Tasks.PipExecutor,
Message = "[{pipDescription}] Failing pip step {step} by {callerName} because execution request could not be sent to worker {workerName}: {errorMessage}")]
public abstract void DistributionExecutePipFailedNetworkFailure(LoggingContext context, string pipDescription, string workerName, string errorMessage, string step, string callerName);
[GeneratedEvent(
(ushort)LogEventId.DistributionExecutePipFailedNetworkFailureWarning,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage | (int)Keywords.InfrastructureError,
EventTask = (ushort)Tasks.PipExecutor,
Message = "[{pipDescription}] Failing pip step {step} by {callerName} because execution request could not be sent to worker {workerName}: {errorMessage}")]
public abstract void DistributionExecutePipFailedNetworkFailureWarning(LoggingContext context, string pipDescription, string workerName, string errorMessage, string step, string callerName);
[GeneratedEvent(
(ushort)LogEventId.DistributionAttachReceived,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage | Keywords.Progress),
EventTask = (ushort)Tasks.Distribution,
Message = "Received attach request from the orchestrator. New session identifier: {sessionId}. Orchestrator Name: {orchestratorName}.")]
public abstract void DistributionAttachReceived(LoggingContext context, string sessionId, string orchestratorName);
[GeneratedEvent(
(ushort)LogEventId.DistributionExitReceived,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Received exit request from the orchestrator. Shutting down...")]
public abstract void DistributionExitReceived(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerExitFailure,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
// This isn't strictly a UserError, but we treat it as once since it's an error for
// sake of forcing the worker's session to be an error. We don't want to mark it as an internal
// or infrastructure error because that would cause the overall session to be infra/internal which
// might not be the case. If the session already logged some other infra/internal error, that status
// will still be preserved since they trump UserError.
Keywords = (int)(Keywords.UserMessage | Keywords.UserError),
EventTask = (ushort)Tasks.Distribution,
Message = "Failing build on worker due to failure: {failure}")]
public abstract void DistributionWorkerExitFailure(LoggingContext context, string failure);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerTimeoutFailure,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
Keywords = (int)(Keywords.UserMessage | Keywords.UserError),
EventTask = (ushort)Tasks.Distribution,
Message = "Timed out waiting for attach request from orchestrator")]
public abstract void DistributionWorkerTimeoutFailure(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionConnectionTimeout,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage),
EventTask = (ushort)Tasks.Distribution,
Message = "Connection with {name} timed out. Details: {details}.")]
public abstract void DistributionConnectionTimeout(LoggingContext context, string name, string details);
[GeneratedEvent(
(ushort)LogEventId.DistributionConnectionFailure,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage),
EventTask = (ushort)Tasks.Distribution,
Message = "The connection with {name} failed and must be terminated. Details: {details}.")]
public abstract void DistributionConnectionUnrecoverableFailure(LoggingContext context, string name, string details);
[GeneratedEvent(
(ushort)LogEventId.DistributionTryMaterializeInputsFailedRetry,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{pipDescription}] Failed to materialize inputs for pip. Number of remaining retries: {remainingRetryCount}.",
EventLevel = Level.Warning,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void DistributionTryMaterializeInputsFailedRetry(LoggingContext context, long pipSemiStableHash, string pipDescription, int remainingRetryCount);
[GeneratedEvent(
(ushort)LogEventId.DistributionTryMaterializeInputsSuccessfulRetry,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{pipDescription}] Successfully materialize inputs for pip on retry. Number of failed attempts: {numberOfFailedAttempts}.",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void DistributionTryMaterializeInputsSuccessfulRetry(LoggingContext context, long pipSemiStableHash, string pipDescription, int numberOfFailedAttempts);
[GeneratedEvent(
(ushort)LogEventId.ErrorUnableToCacheGraphDistributedBuild,
EventGenerators = EventGenerators.LocalOnly,
Message = "Graph could not be cached. Distributed builds require graphs to be cached in order to send graph to workers.",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void ErrorUnableToCacheGraphDistributedBuild(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionServiceInitializationError,
EventGenerators = EventGenerators.LocalOnly,
Message = "Distribution {role} service could not be initialized on port {port}. Verify that port is available.\nException:\n{exceptionMessage}",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics | Keywords.InfrastructureError))]
public abstract void DistributionServiceInitializationError(LoggingContext context, string role, ushort port, string exceptionMessage);
[GeneratedEvent(
(ushort)LogEventId.ErrorCacheDisabledDistributedBuild,
EventGenerators = EventGenerators.LocalOnly,
Message = "Cache is not enabled. Distributed builds require caching to be enabled.",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void ErrorCacheDisabledDistributedBuild(LoggingContext context);
[GeneratedEvent(
(ushort)SharedLogEventId.DistributionWorkerForwardedError,
EventGenerators = EventGenerators.LocalOnly,
Message = "Worker {workerForwardedEvent.WorkerName} logged error:\n{workerForwardedEvent.Text}",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics | Keywords.UserError))]
public abstract void DistributionWorkerForwardedError(LoggingContext context, WorkerForwardedEvent workerForwardedEvent);
[GeneratedEvent(
(ushort)SharedLogEventId.StoppedDistributionWorkerForwardedError,
EventGenerators = EventGenerators.LocalOnly,
Message = "Worker {workerForwardedEvent.WorkerName} logged an error, which was received after the worker was stopped. Error message:\n{workerForwardedEvent.Text},",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics | Keywords.UserError))]
public abstract void StoppedDistributionWorkerForwardedError(LoggingContext context, WorkerForwardedEvent workerForwardedEvent);
[GeneratedEvent(
(ushort)SharedLogEventId.DistributionWorkerForwardedWarning,
EventGenerators = EventGenerators.LocalOnly,
Message = "Worker {workerForwardedEvent.WorkerName} logged warning:\n{workerForwardedEvent.Text}",
EventLevel = Level.Warning,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void DistributionWorkerForwardedWarning(LoggingContext context, WorkerForwardedEvent workerForwardedEvent);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerExecutePipRequest,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{pipDescription}] Executing distributed pip build request of step {step}",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void DistributionWorkerExecutePipRequest(LoggingContext context, long pipSemiStableHash, string pipDescription, string step);
[GeneratedEvent(
(ushort)LogEventId.DistributionPipFailedOnWorker,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{pipDescription}] Failed pip execution of step {step} on worker {workerName}.",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void DistributionPipFailedOnWorker(LoggingContext context, long pipSemiStableHash, string pipDescription, string step, string workerName);
[GeneratedEvent(
(ushort)LogEventId.GrpcTrace,
EventGenerators = EventGenerators.LocalOnly,
Message = "Grpc: {message}.",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void GrpcTrace(LoggingContext context, string message);
[GeneratedEvent(
(ushort)LogEventId.GrpcAuthTrace,
EventGenerators = EventGenerators.LocalOnly,
Message = "Auth: {message}.",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void GrpcAuthTrace(LoggingContext context, string message);
[GeneratedEvent(
(ushort)LogEventId.GrpcAuthWarningTrace,
EventGenerators = EventGenerators.LocalOnly,
Message = "AuthWarning: {message}.",
EventLevel = Level.Warning,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void GrpcAuthWarningTrace(LoggingContext context, string message);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerFinishedPipRequest,
EventGenerators = EventGenerators.LocalOnly,
Message = "[Pip{pipSemiStableHash:X16}] Finished distributed pip build request of step {step}.",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)Keywords.UserMessage)]
public abstract void DistributionWorkerFinishedPipRequest(LoggingContext context, long pipSemiStableHash, string step);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerCouldNotLoadGraph,
EventGenerators = EventGenerators.LocalOnly,
Message = "Distributed build worker failed because it could not load a graph.",
EventLevel = Level.Error,
EventTask = (ushort)Tasks.Distribution,
Keywords = (int)Keywords.UserMessage)]
public abstract void DistributionWorkerCouldNotLoadGraph(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerPipOutputContent,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{pipDescription}] Pip output '{filePath}' with hash '{hash}' reported to orchestrator.",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Distribution,
Keywords = (int)Keywords.Diagnostics)]
public abstract void DistributionWorkerPipOutputContent(LoggingContext context, long pipSemiStableHash, string pipDescription, string filePath, string hash);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerStatus,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage | Keywords.Progress),
EventTask = (ushort)Tasks.Distribution,
Message = "{pipsDone} done, {pipsReporting} reporting, {pipsRecording} recording, {pipsPrepped} prepped, {pipsPrepping} prepping, {pipsQueued} queued")]
internal abstract void DistributionWorkerStatus(
LoggingContext loggingContext,
int pipsQueued,
int pipsPrepping,
int pipsPrepped,
int pipsRecording,
int pipsReporting,
int pipsDone);
[GeneratedEvent(
(ushort)LogEventId.DistributionOrchestratorStatus,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)(Keywords.UserMessage | Keywords.Progress),
EventTask = (ushort)Tasks.Distribution,
Message = "{pipsCompleted} completed, {pipsReported} reported, {pipsSent} sent, {pipsLocal} local, {pipsSending} sending,\n\t" +
"{pipsLocatingInputs} locating inputs, {pipComputingContent} computing content, {pipsAssigned} assigned, {pipsUnassigned} unassigned")]
internal abstract void DistributionOrchestratorStatus(
LoggingContext loggingContext,
int pipsUnassigned,
int pipsAssigned,
int pipsLocatingInputs,
int pipComputingContent,
int pipsSending,
int pipsSent,
int pipsLocal,
int pipsReported,
int pipsCompleted);
[GeneratedEvent(
(int)LogEventId.DistributionDebugMessage,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "DDB_DEBUG: {message}")]
internal abstract void DistributionDebugMessage(LoggingContext loggingContext, string message);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerUnexpectedFailureAfterOrchestratorExits,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "After we received an exit request from the orchestrator, worker exits with an unexpected reason due to a failure in one of the orchestrator-related calls (e.g., attach, notify).")]
public abstract void DistributionWorkerUnexpectedFailureAfterOrchestratorExits(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerOrphanMessage,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "A forwardable event was not forwarded by the worker by the end of the build. PipId: {pipId}. Event text: {message}")]
public abstract void DistributionWorkerOrphanMessage(LoggingContext context, string pipId, string message);
[GeneratedEvent(
(ushort)LogEventId.DistributionWorkerPendingMessageQueues,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Verbose,
Keywords = (int)Keywords.UserMessage,
EventTask = (ushort)Tasks.Distribution,
Message = "Pending message queues for pips were still active by the end of the build: this is unexpected. Any orphan messages have been logged. Details: IsUncleanExit: {isUncleanExit}. Pips: [{pipDetails}]")]
public abstract void DistributionWorkerPendingMessageQueues(LoggingContext context, bool isUncleanExit, string pipDetails);
#endregion
[GeneratedEvent(
(ushort)LogEventId.NonDeterministicPipOutput,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{nonDeterministicPipOutputData.PipDescription}] produced nondeterministic output '{nonDeterministicPipOutputData.OutputPath}' with hash '{nonDeterministicPipOutputData.OutputHash1}' on worker '{nonDeterministicPipOutputData.WorkerDescription1}' and hash '{nonDeterministicPipOutputData.OutputHash2}' on worker '{nonDeterministicPipOutputData.WorkerDescription2}'",
EventLevel = Level.Warning,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void NonDeterministicPipOutput(LoggingContext context, NonDeterministicPipOutputData nonDeterministicPipOutputData);
[GeneratedEvent(
(ushort)LogEventId.NonDeterministicPipResult,
EventGenerators = EventGenerators.LocalOnly,
Message = "[{nonDeterministicPipResultData.PipDescription}] has nondeterministic execution with result '{nonDeterministicPipResultData.Result1}' on worker '{nonDeterministicPipResultData.WorkerDescription1}' and result '{nonDeterministicPipResultData.Result2}' on worker '{nonDeterministicPipResultData.WorkerDescription2}'",
EventLevel = Level.Warning,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void NonDeterministicPipResult(LoggingContext context, NonDeterministicPipResultData nonDeterministicPipResultData);
[GeneratedEvent(
(ushort)LogEventId.EnvironmentVariablesImpactingBuild,
EventGenerators = EventGenerators.LocalOnly,
Message = "Environment variables impacting build (Count = {effectiveEnvironmentVariables.Count})\nUsed (Count = {effectiveEnvironmentVariables.UsedCount}):\n{effectiveEnvironmentVariables.UsedVariables}\n\nUnused (Count = {effectiveEnvironmentVariables.UnusedCount}):\n{effectiveEnvironmentVariables.UnusedVariables}",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void EnvironmentVariablesImpactingBuild(LoggingContext context, EffectiveEnvironmentVariables effectiveEnvironmentVariables);
[GeneratedEvent(
(ushort)LogEventId.MountsImpactingBuild,
EventGenerators = EventGenerators.LocalOnly,
Message = "Mounts impacting build (Count = {effectiveMounts.Count}):\n{effectiveMounts.UsedMountsText}",
EventLevel = Level.Verbose,
EventTask = (ushort)Tasks.Engine,
EventOpcode = (byte)EventOpcode.Info,
Keywords = (int)(Keywords.UserMessage | Keywords.Diagnostics))]
public abstract void MountsImpactingBuild(LoggingContext context, EffectiveMounts effectiveMounts);
[GeneratedEvent(
(ushort)LogEventId.AllowlistFileAccess,
// This is no longer sent to telemetry because it is a relatively large amount of data and was never used.
// Add | EventGenerators.TelemetryOnly to resume sending it to telemetry
EventGenerators = Generators.Statistics,
Message = "Allowlist usage")]
public abstract void AllowlistFileAccess(LoggingContext context, IDictionary<string, int> entryMatches);
[GeneratedEvent(
(ushort)LogEventId.ConfigExportGraphRequiresScheduling,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
Keywords = (int)(Keywords.UserMessage | Keywords.UserError),
EventTask = (int)Tasks.Engine,
Message = "In order to export a build graph (/exportGraph), the schedule phase must be completed. Specify /phase:Schedule or /phase:Execute, or remove the /phase option altogether.")]
public abstract void ConfigExportGraphRequiresScheduling(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeIgnoringChangeJournal,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Usage of the NTFS / ReFS change journal has been disabled. This is an unsafe (diagnostic only) configuration since it limits incremental build performance and correctness. Consider removing the '/unsafe_UseUsnJournal-' switch.")]
public abstract void ConfigUnsafeIgnoringChangeJournal(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.CacheIsStillBeingInitialized,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Informational,
Keywords = (int)(Keywords.UserMessage | Keywords.Overwritable),
EventTask = (int)Tasks.Engine,
Message = "Cache is still being initialized..")]
public abstract void CacheIsStillBeingInitialized(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeDisabledFileAccessMonitoring,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_MonitorFileAccesses disabled: File access monitoring has been disabled. This is an unsafe (diagnostic only) configuration since it removes all guarantees of build correctness.")]
public abstract void ConfigUnsafeDisabledFileAccessMonitoring(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreZwRenameFileInformation,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreZwRenameFileInformation enabled: {ShortProductName} is configured not to detour the ZwRenameInformation API for ZwSetFileInformation. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreZwRenameFileInformation(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreZwOtherFileInformation,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreZwOtherFileInformation: {ShortProductName} is configured not to detour the ZwLinkInformation, ZwFileNameInformation, ZwDispositionInformation, ZwModeInformation APIs for SetFileInformation. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreZwOtherFileInformation(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreValidateExistingFileAccessesForOutputs,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreValidateExistingFileAccessesForOutputs: {ShortProductName} is configured not to validate file access messages for outputs produced. This might lead to incorrect builds and cathastrophic cache corruption because some PathSets will not have all the paths accessed.")]
public abstract void ConfigIgnoreValidateExistingFileAccessesForOutputs(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreNonCreateFileReparsePoints,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreNonCreateFileReparsePoints enabled: {ShortProductName} is configured not to follow symlinks for other than CreateFile and NtCreate/OpenFile APIs. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreNonCreateFileReparsePoints(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreSetFileInformationByHandle,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreSetFileInformationByHandle enabled: {ShortProductName} is configured not to detour the SetFileInformationByHandle API. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreSetFileInformationByHandle(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreReparsePoints,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreReparsePoints enabled: {ShortProductName} is configured not to track reparse points. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreReparsePoints(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreFullReparsePointResolving,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreFullReparsePointResolving enabled: {ShortProductName} will not fully resolve paths containing any sort of reparse point (old-resolver logic). This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnoreFullReparsePointResolving(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnorePreloadedDlls,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnorePreloadedDlls enabled: {ShortProductName} is configured not to track preloaded Dlls. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigIgnorePreloadedDlls(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigDisableDetours,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_DisableDetours enabled: {ShortProductName} is configured not to detour any file access APIs. This might lead to incorrect builds because any file accesses will not be enforced.")]
public abstract void ConfigDisableDetours(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreGetFinalPathNameByHandle,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreGetFinalPathNameByHandle enabled: {ShortProductName} is configured to use Subst without handling the GetFinalPathNameByHandle API. You may encounter errors.")]
public abstract void ConfigIgnoreGetFinalPathNameByHandle(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigIgnoreCreateProcessReport,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreCreateProcessReport enabled: {ShortProductName} is configured to not report file access due to CreateProcess API. This can lead to incorrect builds.")]
public abstract void ConfigIgnoreCreateProcessReport(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigProbeDirectorySymlinkAsDirectory,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_ProbeDirectorySymlinkAsDirectory enabled: {ShortProductName} is configured to treat directory symlink probe as directory probe. This makes {ShortProductName} not track the target directory path. This can lead to incorrect builds.")]
public abstract void ConfigProbeDirectorySymlinkAsDirectory(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigPreserveOutputs,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "unsafe_PreserveOutputs enabled: {ShortProductName} is configured to preserve the state of output files before running a process. This may lead to incorrect builds because a process' behavior may change if outputs are not deleted before running the process.")]
public abstract void ConfigPreserveOutputs(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeUnexpectedFileAccessesAsWarnings,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_UnexpectedFileAccessesAreErrors disabled: Invalid file accesses by tools are configured to trigger warnings instead of errors. This is an unsafe (diagnostic only) configuration since it removes all guarantees of build correctness.")]
public abstract void ConfigUnsafeUnexpectedFileAccessesAsWarnings(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeIgnoreUndeclaredAccessesUnderSharedOpaques,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreUndeclaredAccessesUnderSharedOpaques enabled: Undeclared accesses under shared opaques will not be reported. This is an unsafe configuration since it removes all guarantees of build correctness.")]
public abstract void ConfigUnsafeIgnoreUndeclaredAccessesUnderSharedOpaques(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeOptimizedAstConversion,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_OptimizedAstConversion enabled: Some analyses during AST conversions are disabled and some AST constructs, like types, are not converted.")]
public abstract void ConfigUnsafeOptimizedAstConversion(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigDebuggingAndProfilingCannotBeSpecifiedSimultaneously,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
Keywords = (int)(Keywords.UserMessage | Keywords.UserError),
EventTask = (int)Tasks.Engine,
Message = "Profiling and debugging cannot be specified simultaneously.")]
public abstract void ConfigDebuggingAndProfilingCannotBeSpecifiedSimultaneously(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeMonitorNtCreateFileOff,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_IgnoreNtCreateFile enabled: The monitoring of NTs CreateFile is turned off. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigUnsafeMonitorNtCreateFileOff(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeAllowMissingOutput,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_AllowMissingOutput enabled: Errors for specified-but-not-produced output files have been suppressed. This is an unsafe (diagnostic only) configuration.")]
public abstract void ConfigUnsafeAllowMissingOutput(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeDisableCycleDetection,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_DisableCycleDetection enabled: Cycle detection during evaluation is disabled.")]
public abstract void ConfigUnsafeDisableCycleDetection(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeExistingDirectoryProbesAsEnumerations,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "/unsafe_ExistingDirectoryProbesasEnumerations enabled: {ShortProductName} is reporting existing directory probes as enumerations. This might lead to cases where pips will be executed even when there is no need for it.")]
public abstract void ConfigUnsafeExistingDirectoryProbesAsEnumerations(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUnsafeMonitorZwCreateOpenQueryFileOff,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "The monitoring of ZwOpenFile, ZwCreateFile, and ZwQueryDirectoryFile is turned off. This might lead to incorrect builds because some file accesses will not be enforced.")]
public abstract void ConfigUnsafeMonitorZwCreateOpenQueryFileOff(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigArtificialCacheMissOptions,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Informational,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Artificial cache misses will be injected at a rate of {missRate:P3}. To reproduce these same misses, specify /injectCacheMisses:{currentParameters} ; to instead inject misses for all other pips, specify /injectCacheMisses:{invertedParameters}")]
public abstract void ConfigArtificialCacheMissOptions(LoggingContext context, double missRate, string currentParameters, string invertedParameters);
[GeneratedEvent(
(int)LogEventId.AssignProcessToJobObjectFailed,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.PipExecutor,
Message = "AssignProcessToJobObject failed: Native Win32 Error: {0}")]
public abstract void AssignProcessToJobObjectFailed(LoggingContext context, string nativeError);
[GeneratedEvent(
(ushort)LogEventId.CannotHonorLowPriority,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Unable to honor the /lowPriority option. This requires Win8/Server2012 or newer.")]
public abstract void CannotEnforceLowPriority(LoggingContext context);
[GeneratedEvent(
(ushort)LogEventId.ConfigUsingExperimentalOptions,
EventGenerators = EventGenerators.LocalAndTelemetry,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "One or more experimental options have been enabled. These options may one day be supported, but may currently be unstable. Please report any issues to the {ShortProductName} team. Options enabled: {optionsEnabled}")]
public abstract void ConfigUsingExperimentalOptions(LoggingContext context, string optionsEnabled);
[GeneratedEvent(
(ushort)LogEventId.ConfigIncompatibleIncrementalSchedulingDisabled,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Option '{option}' is incompatible with incremental scheduling. Incremental scheduling has been disabled.")]
public abstract void ConfigIncompatibleIncrementalSchedulingDisabled(LoggingContext context, string option);
[GeneratedEvent(
(ushort)LogEventId.ConfigIncompatibleOptionWithDistributedBuildError,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Error,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Option {option} is incompatible with distributed builds.")]
public abstract void ConfigIncompatibleOptionWithDistributedBuildError(LoggingContext context, string option);
[GeneratedEvent(
(ushort)LogEventId.ConfigIncompatibleOptionWithDistributedBuildWarn,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Option '{option}' with value '{currentValue}' is incompatible with distributed builds. The option has been set to '{newValue}'.")]
public abstract void ConfigIncompatibleOptionWithDistributedBuildWarn(LoggingContext context, string option, string currentValue, string newValue);
[GeneratedEvent(
(ushort)LogEventId.WarnToNotUsePackagesButModules,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = "Deprecated configuration. Config file '{configFile}' declares a set of modules via the 'packages' field. This field will be deprecated soon. Please start using the field 'modules'. This field has identical semantics. If you can't update and need this feature after July 2018 please reach out to the {ShortProductName} team.")]
public abstract void WarnToNotUsePackagesButModules(LoggingContext context, string configFile);
[GeneratedEvent(
(ushort)LogEventId.WarnToNotUseProjectsField,
EventGenerators = EventGenerators.LocalOnly,
EventLevel = Level.Warning,
Keywords = (int)Keywords.UserMessage,
EventTask = (int)Tasks.Engine,
Message = @"Deprecated configuration. Config file '{configFile}' declares a set of orphaned projects via the 'projects' field. This field will be deprecated soon. Please create a proper {ShortScriptName} module file and update the configuration with the following steps: