.netcrashmolespexpex-and-moles

Moles crashing when unit test debugging is being stopped


I'm using Pex and Moles Power Tools 0.94.51023.0 64-bit (en_visual_studio_2010_pex_0.94.51023.0_power_tools_x64_598803.exe) in Visual Studio 2010 SP1 (Windows 7 Enterprise 64-bit, all updates installed via Windows Update). Project is .NET 2.0, tests are running in 32-bit mode set explicitly in settings. When run, everything is ok and no errors occur. But when I run tests in debug mode and stop before they finish, Moles are crashing:

Microsoft.Moles.VsHost stopped working
Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: microsoft.moles.vshost.x86.exe
  Problem Signature 02: 0.94.0.0
  Problem Signature 03: 4cc31915
  Problem Signature 04: System.Runtime.Remoting
  Problem Signature 05: 4.0.0.0
  Problem Signature 06: 4ba1df86
  Problem Signature 07: e5
  Problem Signature 08: c9
  Problem Signature 09: System.Runtime.Remoting.Remoting
  OS Version:   6.1.7601.2.1.0.256.4
  Locale ID:    1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

Attached debugger and got more detailed information:

The test adapter 'MolesAgentAdapter' threw an exception while running test 'My_Test_Method_Name'. Failed to read from an IPC Port: The pipe has been ended.

Call stack:

Server stack trace: 
   at System.Runtime.Remoting.Channels.Ipc.IpcPort.Connect(String portName, Boolean secure, TokenImpersonationLevel impersonationLevel, Int32 timeout)
   at System.Runtime.Remoting.Channels.Ipc.ConnectionCache.GetConnection(String portName, Boolean secure, TokenImpersonationLevel level, Int32 timeout)
   at System.Runtime.Remoting.Channels.Ipc.IpcClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
   at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.VisualStudio.TestTools.Execution.IResultSink.AddResult(TestMessage testMessage)
   at Microsoft.Moles.VsHost.Host.SafeResultSink.AddResult(TestMessage testMessage)
   at Microsoft.Moles.VsHost.RunResultSyncLogger.eventLogSource_LogHandler(LogEventArgs e)
   at Microsoft.ExtendedReflection.Logging.EventLog.LogUnfiltered(LogEventArgs args)
   at Microsoft.ExtendedReflection.Logging.EventLog.LogErrorFromException(Exception ex, String wikiTopic, String category, String message)
   at Microsoft.Moles.VsHost.Host.MolesHostAdapter.AsyncRunTests()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

When test is run to the end, no crash occurs. Already tried to reinstall .NET Framework and Moles, no success resolving this problem. Any ideas what is causing/how to fix this issue? Proxy and IPC connections shown are very weird. Thanks in advance.


Solution

  • Issue was resolved during project upgrade which resulted in phasing out Moles and substituting them to Fakes.