[Mono-bugs] [Bug 61184][Nor] New - XmlRpcCS client/server interaction hangs when using Mono

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Mon, 5 Jul 2004 20:49:07 -0400 (EDT)


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 mattb@columbia.edu.

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

--- shadow/61184	2004-07-05 20:49:07.000000000 -0400
+++ shadow/61184.tmp.2120	2004-07-05 20:49:07.000000000 -0400
@@ -0,0 +1,116 @@
+Bug#: 61184
+Product: Mono: Class Libraries
+Version: unspecified
+OS: 
+OS Details: OS X 10.3.4: Darwin localhost.local 7.4.0 Darwin Kernel Version 7.4.0: Wed May 12 16:58:24 PDT 2004; root:xnu/xnu-517.7.7.obj~7/RELEASE_PPC  Power Macintosh powerpc
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: Sys.XML
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: mattb@columbia.edu               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: XmlRpcCS client/server interaction hangs when using Mono
+
+================================
+Description of Problem:
+
+XmlRpcCS hangs when using XmlRpcClientProxy on mono on non Windows platforms.
+
+Okay, I know there are like six dependencies other than Mono here (and I've
+already informed Nicholas Christopher, the author of XmlRpcCS), but I
+figure it might be helpful to bring this up.
+
+================================
+Steps to reproduce the problem:
+
+1. Compile the attached file test.cs with XmlRpcCS 1.10 (found at
+http://opaque.ods.org/XmlRpcCS/) on a non windows platform (I'm using OS X
+10.3.4 with mono 0.91 from fink):
+
+    mcs -out:xmlrpccs.dll -target:library XmlRpcCS/src/nwc/xmlrpc/*.cs
+    mcs -out:test.exe -reference:xmlrpccs.dll test.cs
+
+2. Run test.exe with no arguments to run the server on port 5050 (this will
+block):
+
+    mono test.exe
+
+3. Run test.exe with a command to run the client:
+
+    mono test.exe test
+    mono test.exe halt
+
+Alternatively, if you're running a sniffer like tcpmon
+(http://ws.apache.org/axis/java/user-guide.html), you can tell the client
+to connect to a different port by specifying it as a second command line
+argument:
+
+    mono test.exe test 5051
+    mono test.exe halt 5051
+
+================================
+Expected Results:
+
+After issuing the test command from the client, the server should print to
+stderr:
+
+    test() called
+
+After issuing the halt command from the client, the server should print to
+stderr:
+
+    halt() called
+
+It should then exit with an exception.
+
+================================
+Actual Results:
+
+After issuing the command, both the client and the server hang. I looked at
+the stuff going over the wire via tcpmon, and I saw that the client was
+sending (what looked like) good data:
+
+    POST / HTTP/1.1
+    Content-Type: text/xml
+    Content-Length: 112
+    Expect: 100-continue
+    Connection: keep-alive
+    Host: 127.0.0.1
+    
+    
+    <?xml version="1.0"
+encoding="us-ascii"?><methodCall><methodName>tester.test</methodName><params
+/></methodCall>
+
+But there was no response from the server until I killed the client, but
+then the server's response was incomplete:
+
+    HTTP/1.1 200 OK
+    Connection: close
+    Server: XmlRpcServer 
+    Content-Type: text/xml
+    
+    
+Just before it issues the incomplete response, it does in fact print the
+desired message (but only after I kill the client):
+
+    test() called
+
+Again, I believe this is a mono issue (at least on OS X), but I could be
+blatantly off my rocker here.
+
+================================
+How often does this happen?
+
+Every single time.
+
+================================
+Additional Information:
+
+None that I can think of, but I'm kind of slow, so I wouldn't be surprised
+if there was something I missed....