[Mono-bugs] [Bug 74661][Nor] New - Asynchronous I/O not working with windows

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Tue, 19 Apr 2005 14:17:32 -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 dominic_ullmann@hispeed.ch.

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

--- shadow/74661	2005-04-19 14:17:32.000000000 -0400
+++ shadow/74661.tmp.29837	2005-04-19 14:17:32.000000000 -0400
@@ -0,0 +1,71 @@
+Bug#: 74661
+Product: Mono: Class Libraries
+Version: 1.1
+OS: 
+OS Details: XP
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: dominic_ullmann@hispeed.ch               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Asynchronous I/O not  working with windows
+
+Description of Problem:
+Asynchronous I/O is not working with mono 1.1.6 / mono 1.0.6 on windows.
+
+Steps to reproduce the problem:
+1. unzip the example
+2. compile client in directory client with mcs /out:Client.exe *.cs
+3. compile server in directory server with mcs /out:Server.exe *.cs
+4. run server.exe with mono server.exe
+5. run client.exe with mono client.exe
+
+Actual Results:
+server side:
+Waiting for a connection... Connected!
+Waiting for a connection... problem while receiving: 
+System.IO.IOException: EndR
+ead failure ---> System.Net.Sockets.SocketException: Operation on non-
+blocking s
+ocket would block
+in <0x00071> System.Net.Sockets.Socket:Receive_nochecks (System.Byte[] 
+buf, Int3
+2 offset, Int32 size, SocketFlags flags)
+in <0x00090> System.Net.Sockets.Socket+Worker:Receive ()--- End of inner 
+excepti
+on stack trace ---
+
+in <0x00084> System.Net.Sockets.NetworkStream:EndRead (IAsyncResult ar)
+in <0x00011> Ch.Elca.Iiop.TcpTransportBase:EndRead (IAsyncResult 
+asyncResult)
+in <0x0000d> Ch.Elca.Iiop.TcpServerTransport:ITransport.EndRead 
+(IAsyncResult )
+in <0x00030> TestAsyncRead.MessageReceiveTask:HandleReadCompleted 
+(IAsyncResult
+ar)
+
+
+
+Expected Results:
+With MS.NET, I get no exception. The following output is expected:
+Waiting for a connection... Connected!
+Waiting for a connection... read completed
+Received: ABC
+
+How often does this happen? 
+Always.
+
+Additional Information:
+In my opinion, EndRead should not block in this case, because some bytes 
+to read must be available. Otherwise HandleReadCompleted should not be 
+called.
+
+This problem is possibly windows related, because the same example works 
+fine with mono 1.0.1 on linux. (Sorry, I can't upgrade mono on linux, 
+therefore I'm not sure about this).