IPv4 socket bind using IPv6 socket on openjdk6 breaks udp send

Bjoern A. Zeeb bz at FreeBSD.org
Sat Jun 25 09:27:32 UTC 2011


On Jun 24, 2011, at 9:11 PM, Steven Hartland wrote:

Hi,

> We're trying to get our machines IPv6 enabled but in doing so this
> seems to break java apps using openjdk6 for UDP sends.

One of the clues I can give you is:
http://diario.behrens.de/2008/10/12/java_and_ipv6_on_bsd.html

it's old(er) and I have lately been tolded that openjdk has a problem.


> using truss we see the following:-
> socket(PF_INET6,SOCK_DGRAM,0)            = 20 (0x14)
> setsockopt(0x14,0x29,0x1b,0x7ffffedf0318,0x4,0x0) = 0 (0x0)
> setsockopt(0x14,0xffff,0x20,0x7ffffedf031c,0x4,0x0) = 0 (0x0)
> bind(20,{ AF_INET6 [3800::10:0:0:0]:20736 },28)  = 0 (0x0)
> ..
> recvfrom(20,0x7ffffeaeb580,1460,0x0,0x7ffffeaed580,0x7ffffeaed5ac) ERR#60 'Operation timed out'
> ..
> sendto(20,"\M^?\M^?\M^?\M^?I\aMultiplay :: "...,82,0x0,{ AF_INET6 [3800::10:0:0:0]:20736 },0x1c) ERR#22 'Invalid argument'

So how much is really between these ...?   If you want, can you send
me a full output in private email?
Also which version of FreeBSD is this?


> sockstat shows it binding correctly
> root     java       894   21 tcp4   85.236.109.212:25675  *:*

That's unfortunately unreleated.


> The following PR seems relevant but also seems to indicate it was
> fixed back in 2006
> http://www.freebsd.org/cgi/query-pr.cgi?pr=92620

This doesn't seen to be related to the above as 3800::10:0:0:0 is
not a v4-mapped-v6 address.  Now there could be the problem really.
Do you know which address the code above was trying to talk with?

Also do you have a very simple test program I could try to run if
I compile openjdk6?

/bz

-- 
Bjoern A. Zeeb                                 You have to have visions!
    Stop bit received. Insert coin for new address family.



More information about the freebsd-net mailing list