RubyUDPSocket.send tries to do inet address lookup, pauses too long for inet6
failure
-------------------------------------------------------------------------------------
Key: JRUBY-3076
URL: http://jira.codehaus.org/browse/JRUBY-3076
Project: JRuby
Issue Type: Bug
Components: Extensions
Reporter: Charles Oliver Nutter
Assignee: Charles Oliver Nutter
Fix For: JRuby 1.1.6
It appears that our UDP socket implementation is trying to do an inet address
lookup when it should not, doing lookups excessively, or otherwise not quickly
failing to lookup an address during send. The following partial trace is from
running the scripts attached to JRUBY-1413:
{noformat}
"Thread-2" daemon prio=5 tid=0x0000000101929000 nid=0x12ac96000 runnable
[0x000000012ac94000..0x000000012ac95ad0]
java.lang.Thread.State: RUNNABLE
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1200)
at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
at java.net.InetAddress.getAllByName(InetAddress.java:1083)
at java.net.InetAddress.getAllByName(InetAddress.java:1019)
at java.net.InetAddress.getByName(InetAddress.java:969)
at org.jruby.ext.socket.RubyUDPSocket.send(RubyUDPSocket.java:206)
{noformat}
The list_services.rb script returns almost immediately for MRI, but for us it
consistently takes about 30 seconds. Not a super-critical issue, since I don't
think a lot of people are using UDP sockets in JRuby, but an issue nonetheless.
Potentially an EASY BUG for someone interested in contributing. Have a look at
RubyUDPSocket.java, "send" method, based on this trace.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email