https://bugzilla.novell.com/show_bug.cgi?id=657593
https://bugzilla.novell.com/show_bug.cgi?id=657593#c0 Summary: Socket.AcceptAsync causes ObjectDisposedException at the time the socket closes. Classification: Mono Product: Mono: Class Libraries Version: SVN Platform: x86 OS/Version: Linux Status: NEW Severity: Critical Priority: P5 - None Component: System AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=403458) --> (http://bugzilla.novell.com/attachment.cgi?id=403458) Testcase User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0b8pre) Gecko/20101126 Firefox/4.0b8pre Closing a listening socket that has had the AcceptAsync method called and is waiting for a connection causes ObjectDisposedException that can't be caught by user code (thrown in the ThreadPool?). The attached testcase demonstrates the problem. It has been tested on .NET and has no problem there. More information: The attached program tries to run the test twice, one time with the e.AcceptSocket member set to null (before the call to AcceptAsync) and one time with the e.AcceptSocket member set to a pre-initialized socket. The ObjectDisposedException is thrown on both cases but when the e.AcceptSocket is not null, a related but slightly different bug also appears: The Completed event is raised with the e.AcceptSocket member set to null. Reproducible: Always Steps to Reproduce: 1. Run the attached testcase 2. 3. Actual Results: Test with non-null e.AcceptSocket... Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed. at System.Net.Sockets.Socket.EndAccept (System.Byte[]& buffer, System.Int32& bytesTransferred, IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 at System.Net.Sockets.Socket.EndAccept (IAsyncResult result) [0x00000] in <filename unknown>:0 at System.Net.Sockets.SocketAsyncEventArgs.AcceptCallback (IAsyncResult ares) [0x00000] in <filename unknown>:0 Test with null e.AcceptSocket... Error: Completed called with AcceptSocket = null. Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed. at System.Net.Sockets.Socket.EndAccept (System.Byte[]& buffer, System.Int32& bytesTransferred, IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 at System.Net.Sockets.Socket.EndAccept (IAsyncResult result) [0x00000] in <filename unknown>:0 at System.Net.Sockets.SocketAsyncEventArgs.AcceptCallback (IAsyncResult ares) [0x00000] in <filename unknown>:0 Expected Results: Test with non-null e.AcceptSocket... OK. Test with null e.AcceptSocket... OK. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
