Skip to content

[Bug]: Terminal logger crashes in TargetStarted coming from OOP node #9322

@ladipro

Description

@ladipro

Issue Description

I hit a TL crash when building a repro for #9320.

Steps to Reproduce

Build the following with the MSBUILDNOINPROCNODE environment variable set to 1:

<Project>
  <Target Name='Build'>
    <RegisterAssembly Assemblies="nonexistent.dll" />
  </Target>
</Project>

Expected Behavior

The build fails as it cannot find nonexistent.dll.

Actual Behavior

Unhandled Exception: Microsoft.Build.Exceptions.InternalLoggerException: The build stopped unexpectedly because of an unexpected logger failure. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Microsoft.Build.Logging.TerminalLogger.TerminalLogger.TargetStarted(Object sender, TargetStartedEventArgs e)
   at Microsoft.Build.BackEnd.Logging.EventSourceSink.RaiseTargetStartedEvent(Object sender, TargetStartedEventArgs buildEvent)
   --- End of inner exception stack trace ---
   at Microsoft.Build.Exceptions.InternalLoggerException.Throw(Exception innerException, BuildEventArgs e, String messageResourceName, Boolean initializationException, String[] messageArgs)
   at Microsoft.Build.BackEnd.Logging.EventSourceSink.RaiseTargetStartedEvent(Object sender, TargetStartedEventArgs buildEvent)
   at Microsoft.Build.BackEnd.Logging.LoggingService.RouteBuildEvent(KeyValuePair`2 nodeEvent)
   at Microsoft.Build.BackEnd.Logging.LoggingService.RouteBuildEvent(Object loggingEvent)
   at Microsoft.Build.BackEnd.Logging.LoggingService.ProcessLoggingEvent(Object buildEvent)
   at Microsoft.Build.BackEnd.Logging.LoggingService.PacketReceived(Int32 node, INodePacket packet)
   at Microsoft.Build.BackEnd.NodePacketFactory.PacketFactoryRecord.DeserializeAndRoutePacket(Int32 nodeId, ITranslator translator)
   at Microsoft.Build.BackEnd.NodePacketFactory.DeserializeAndRoutePacket(Int32 nodeId, NodePacketType packetType, ITranslator translator)
   at Microsoft.Build.BackEnd.NodeProviderOutOfProcBase.NodeContext.ReadAndRoutePacket(NodePacketType packetType, Byte[] packetData, Int32 packetLength)
   at Microsoft.Build.BackEnd.NodeProviderOutOfProcBase.NodeContext.BodyReadComplete(IAsyncResult result)
   at System.IO.Pipes.PipeStream.AsyncPSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

Analysis

No response

Versions & Configurations

MSBuild version 17.8.1+585e09762 for .NET Framework

Metadata

Metadata

Labels

Area: Terminal LoggerProblems with the livelogger/fancylogger/terminallogger -tl functionality.Priority:1Work that is critical for the release, but we could probably ship withoutbugtriaged

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions