[Mono-bugs] [Bug 462688] New: IPv6 bug in TcpClient calling Socket.Bind()

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Dec 28 14:32:40 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=462688


           Summary: IPv6 bug in TcpClient calling Socket.Bind()
           Product: Mono: Runtime
           Version: 2.0.x
          Platform: i686
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: remoting
        AssignedTo: lluis at novell.com
        ReportedBy: d.paleino at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development


Trying to debug why a c# IRC client did not connect through IPv6, I've found
out that a bug probably exists in TcpClient calling Bind(). I'm attaching a
simple testcase, with a server and a client both communicating locally with
IPv6.

Also, I believe it's the internal call of Bind() from TcpClient that is buggy,
since an implementation with the lower-level Socket class is successful.

Here's the mdb run (sorry I've not been able to go further):

$ mdb ./Client/bin/Debug/Client.exe 
Mono Debugger
(mdb) run
Starting program: ./Client/bin/Debug/Client.exe 
Thread @1 stopped at #0: 0xb79547b9 in ipv6.Client.Main(string[])+0x9 at
/home/neo/code/c-sharp/ipv6/Client/Client.cs:31.
  31                    if (!Socket.OSSupportsIPv6) {
(mdb) c

Unhandled Exception: System.Net.Sockets.SocketException: Invalid arguments
  at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x0006c]
in /tmp/buildd/mono-2.0.1/mcs/class/System/System.Net.Sockets/Socket.cs:2038 
  at System.Net.Sockets.TcpClient..ctor (AddressFamily family) [0x0002c] in
/tmp/buildd/mono-2.0.1/mcs/class/System/System.Net.Sockets/TcpClient.cs:87 
  at ipv6.Client.Main (System.String[] args) [0x00028] in
/home/neo/code/c-sharp/ipv6/Client/Client.cs:40 
Thread @1 caught unhandled exception at #0: 0xb700d77b in
System.Net.Sockets.Socket.Bind(System.Net.EndPoint)+0xeb.
0xb700d77b      add    %ch,0xffffffe4(%eax)
(mdb) f
#0: 0xb700d77b in System.Net.Sockets.Socket.Bind(System.Net.EndPoint)+0xeb
0xb700d77b      add    %ch,0xffffffe4(%eax)
(mdb) show locals
ERROR: Selected stack frame has no method.
(mdb) show params
ERROR: Selected stack frame has no method.
(mdb) up
#1: 0xb700d4de in
System.Net.Sockets.TcpClient..ctor(System.Net.Sockets.AddressFamily)+0x56 at
/tmp/buildd/mono-2.0.1/mcs/class/System/System.Net.Sockets/TcpClient.cs:87
0xb700d4de      call  
0xb700d690:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)
(mdb) show locals
(mdb) show params
family = (System.Net.Sockets.AddressFamily) InterNetworkV6
(mdb) up
#2: 0xb795481b in ipv6.Client.Main(string[])+0x6b at
/home/neo/code/c-sharp/ipv6/Client/Client.cs:40
  40                    TcpClient client = new
TcpClient(AddressFamily.InterNetworkV6);
(mdb) show locals
b = (byte[]) null
client = <cannot display object>
ip = (System.Net.IPAddress) { m_Address = 0, m_Family = InterNetworkV6,
m_Numbers = 0x0008b6e0, 
   m_ScopeId = 0, m_HashCode = 0 }
iploop = (System.Net.IPAddress) { m_Address = 0, m_Family = InterNetworkV6, 
   m_Numbers = 0x000484a0, m_ScopeId = 0, m_HashCode = 0 }
IPv6_ADDR = (string) "::1"
(mdb) show params
args = (string[]) [ ]
(mdb)


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list