[Mono-bugs] [Bug 74081][Nor] New - Mono unable to act as remoting server on Win2K across real network (non-localhost) interfaces

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Thu, 24 Mar 2005 17:50:35 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by ravitch@nrtc.northrop.com.

http://bugzilla.ximian.com/show_bug.cgi?id=74081

--- shadow/74081	2005-03-24 17:50:35.000000000 -0500
+++ shadow/74081.tmp.21375	2005-03-24 17:50:35.000000000 -0500
@@ -0,0 +1,115 @@
+Bug#: 74081
+Product: Mono: Class Libraries
+Version: 1.1
+OS: other
+OS Details: Windows 2000
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: System
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: ravitch@nrtc.northrop.com               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Mono unable to act as remoting server on Win2K across real network (non-localhost) interfaces
+
+Description of Problem:
+
+Mono's remoting hangs or prematurely closes the connection when running
+a server on Windows 2000.  The problem only happens when the connection
+is across a network.  I.e., when both client and server are on the same
+machine, everything works.
+
+With the TCP transport, the server closes the connection almost instantly.
+(Looking at a packet dump, you can see the RST instead of a response.)
+
+With the HTTP transport, the server appears to just not answer.
+
+Steps to reproduce the problem:
+1. Edit client.conf so that your server host is given in the URL.
+2. Run server.exe under Mono on the server.  The server should be
+   a Windows 2000 machine.
+3. Run client.exe under Mono on the client.  The client machine can
+   run any operating system (well, I've tried Win2K and Fedora Core 3)
+
+Actual Results:
+
+[NOTE: These results are with TCP as the transport - with HTTP as the
+transport you eventually get a timeout exception from the client]
+
+---- BEGIN CLIENT OUTPUT ----
+Client: Creating object
+
+Unhandled Exception: System.Runtime.Remoting.RemotingException: Tcp
+transport error.
+
+Server stack trace:
+in <0x00084>
+System.Runtime.Remoting.Channels.Tcp.TcpMessageIO:ReceiveMessageStatus
+(System.IO.Stream,byte[])
+in <0x00186>
+System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink:ProcessMessage
+(System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&)
+in <0x0006b>
+System.Runtime.Remoting.Channels.SoapClientFormatterSink:SyncProcessMessage
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002ee> System.Runtime.Remoting.Proxies.RemotingProxy:Invoke
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002cf> System.Runtime.Remoting.Proxies.RealProxy:PrivateInvoke
+(System.Runtime.Remoting.Proxies.RealProxy,System.Runtime.Remoting.Messaging.IMessage,System.Exception&,object[]&)
+
+
+Exception rethrown at [0]:
+ ---> System.Runtime.Remoting.RemotingException: Connection closed
+in <0x0006e> System.Runtime.Remoting.Channels.Tcp.TcpMessageIO:StreamRead
+(System.IO.Stream,byte[],int)
+in <0x00044>
+System.Runtime.Remoting.Channels.Tcp.TcpMessageIO:ReceiveMessageStatus
+(System.IO.Stream,byte[])
+--- End of inner exception stack trace ---
+
+in <0x00084>
+System.Runtime.Remoting.Channels.Tcp.TcpMessageIO:ReceiveMessageStatus
+(System.IO.Stream,byte[])
+in <0x00186>
+System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink:ProcessMessage
+(System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&)
+in <0x0006b>
+System.Runtime.Remoting.Channels.SoapClientFormatterSink:SyncProcessMessage
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002ee> System.Runtime.Remoting.Proxies.RemotingProxy:Invoke
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002cf> System.Runtime.Remoting.Proxies.RealProxy:PrivateInvoke
+(System.Runtime.Remoting.Proxies.RealProxy,System.Runtime.Remoting.Messaging.IMessage,System.Exception&,object[]&)
+---- END CLIENT OUTPUT ----
+
+There's no output from the server.
+
+Expected Results:
+
+---- BEGIN CLIENT OUTPUT ----
+Client: Creating object
+Client: Asking object to say "hello"
+Client: ALL DONE!
+---- END CLIENT OUTPUT -----
+
+---- BEGIN SERVER OUTPUT -----
+Press [Enter] to stop server.
+RemoteObject: New object created
+Hello, World!
+---- END SERVER OUTPUT -----
+
+How often does this happen? 
+
+Always.
+
+Additional Information:
+
+The sample code has been tested with the server on Mono under Linux as
+well as on MS .Net Framework under Windows 2000.  In all such cases, it
+runs successfully.
+
+(Will add sample code as attachments)