nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #00377
[Bug 561487] Re: NullReferenceException ProcessRunner.Load loading test
Hi,
Thanks for the info...
> #1 2.0.50727.4927 (Net 2.0)
>
> #2 v4.0.30128
These two values indicate that a process should be launched. NUnit should detect that the assembly was built
using 4.0.30128 and decide to launch a process.
> #3 As far as i can tell no additional processes are being launched -
unless they are starting/stopping inside the refresh window of Task
Manager.
It may be faiing too quickly to show up, but the stack trace seems to
indicate it is launched.
> #4 I have replicated it using a simple c# test dll - stack trace looks
identical to me
System.NullReferenceException...
Server stack trace:
at NUnit.Util.ProcessRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Util.RemoteTestAgent.AgentRunner.Load(TestPackage package)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
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 NUnit.Core.TestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Util.ProcessRunner.Load(TestPackage package)
at NUnit.Util.TestLoader.LoadTest(String testName)
The top section (Server Stack trace) is from the nunit-agent executable. The presense of
RemoteTestAgent gives it away.
The bottom section is from the nunit executable. Notice also how
"ProcessTestRunner" appears in both of them. That's the runner NUnit
uses when it needs to launch a process. So it looks like nunit is not
creating the server process in a way that allows it to run the test. The
runner in that process decides it needs another process, which should
not happen.
I can try this on a 32 bit system to see if it replicates, but it's
likely to behave differently. Here's an idea... rename the binaries
nunit-agent.exe and nunit-agent-x86.exe to something else and watch it
crash in a different way. Then rename them back to their original names
one at a time so we can deduce which one is running. nunit-x86 should
always launch nunit-agent-x86 and if it failed to do so it would cause a
problem.
Charlie
--
NullReferenceException ProcessRunner.Load loading test
https://bugs.launchpad.net/bugs/561487
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
Status in NUnit V2 Test Framework: New
Bug description:
NUnit 2.5.4.10098, MSI Install
When running nunit-x86.exe to load a 32bit C++/CLI test dll (Built with VS2010 RC, .NET v4.0.30128) on windows 2008R2 64bit the following exception/call stack is generated.
System.NullReferenceException...
Server stack trace:
at NUnit.Util.ProcessRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Util.RemoteTestAgent.AgentRunner.Load(TestPackage package)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
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 NUnit.Core.TestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Util.ProcessRunner.Load(TestPackage package)
at NUnit.Util.TestLoader.LoadTest(String testName)
After that error dialog is dismissed accessing the File menu generates the following exception:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
Server stack trace:
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Runtime.Remoting.Channels.SocketStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.Runtime.Remoting.Channels.ChunkedMemoryStream.WriteTo(Stream stream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.GetRequestStream(IMessage msg, Int32 contentLength, ITransportHeaders headers)
at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.SendRequest(IMessage msg, ITransportHeaders headers, Stream contentStream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.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 NUnit.Core.TestRunner.get_Running()
at NUnit.Core.ProxyTestRunner.get_Running()
at NUnit.Util.TestLoader.get_Running()
at NUnit.Gui.NUnitForm.get_IsTestRunning()
at NUnit.Gui.NUnitForm.fileMenu_Popup(Object sender, EventArgs e)
at System.Windows.Forms.MenuItem.OnPopup(EventArgs e)
at System.Windows.Forms.MenuItem.OnInitMenuPopup(EventArgs e)
at System.Windows.Forms.MenuItem._OnInitMenuPopup(EventArgs e)
at System.Windows.Forms.Menu.ProcessInitMenuPopup(IntPtr handle)
at System.Windows.Forms.Form.WmInitMenuPopup(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
nunit-x86
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/nunit-x86.exe
----------------------------------------
nunit-gui-runner
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit-gui-runner.DLL
----------------------------------------
nunit.core
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.DLL
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
nunit.uikit
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uikit.DLL
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
nunit.util
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.util.DLL
----------------------------------------
nunit.core.interfaces
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.interfaces.DLL
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
nunit.uiexception
Assembly Version: 2.5.4.10098
Win32 Version: 2.5.4.10098
CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uiexception.DLL
----------------------------------------
System.Web
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_32/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
References