[Mono-bugs] [Bug 656188] New: BeginReceive (IList<ArraySegment<byte>>) doesn't call the AsyncCallback on socket closed.

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Nov 28 07:56:24 EST 2010



           Summary: BeginReceive (IList<ArraySegment<byte>>) doesn't call
                    the AsyncCallback on socket closed.
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.8.x
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: System
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: pavlos256 at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

Created an attachment (id=402369)
 --> (http://bugzilla.novell.com/attachment.cgi?id=402369)

Description of Problem:

Using BeginReceive() with the IList<ArraySegment<byte>> overloads never calls
the receive AsyncCallback when the connection is closed from the remote end.
The byte[] overloads work as expected. Both work fine on .NET.

Steps to reproduce the problem:
1. Compile the attached testcase, defining the USE_ARRAYSEGMENTS symbol like
mcs -define:USE_ARRAYSEGMENTS Program.cs
2. Run the program, wait a couple seconds and hit enter to terminate.

Actual Results:
The "server" socket's receive callback is never called so that EndReceive()
returns 0 bytes.

Expected Results:
When the "client" socket closes, the "server"'s receive AsynCallback should be
called and EndReceive() should return 0 bytes.

How often does this happen? 

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.

More information about the mono-bugs mailing list