getHostName() broken?

Brad Karp bkarp+ at cs.cmu.edu
Mon Aug 23 09:04:27 PDT 2004


In message <20040823155154.GA15838 at misty.eyesbeyond.com>you write:
>On Thu, Aug 19, 2004 at 11:01:30PM -0400, Brad Karp wrote:
>> I'm running 4.9-RELEASE, and have built the jdk1.4.2 port using revision 5
>> of the FreeBSD patch kit.
>> 
>> I have a visualization application written in Java by a colleague that I've
>> been running. The application shows nodes in a large-scale distributed syste
>m,
>> and allows clicking on a host to show its Internet hostname.
>> 
>> The code uses getHostName() to do this.
>> 
>> I find that these reverse DNS lookups *all* fail; getHostName() returns a
>> String that is a textual representation of the IP address. (There's no
>> security manager involved here, BTW. The reference for getHostName() says
>> the security manager may check for authorization on getHostName() calls,
>> but I've not changed my Java runtime's security policy from the defaults.)
>> 
>> Further poking reveals that *no* outbound DNS queries (traffic destined for
>> UDP or TCP port 53) are being generated for these reverse name lookups!
>> 
>> I'm perplexed. Can it really be that InetAddress.getHostName() is broken on
>> FreeBSD? Has anyone seen similar behavior, and if so, can you propose a
>> workaround, apart from linking in C code to do these reverse name lookups?
>
>Works for me.  Test code attached.  Here is the output:
>
>> java -cp . HostName
>66.35.250.151
>star.slashdot.org

Many thanks for following up, Greg!

Doesn't work for me, alas! Running your test code, the output is:

> $JAVAHOME/bin/java -cp . HostName
66.35.250.151
66.35.250.151

>Are you sure resolution works for you normally?  Can you run host(1) and
>check that lookups succeed for the hosts?

Yes--this is my desktop host. Name resolution works flawlessly for me at all
times on a daily basis. To wit:

> host 66.35.250.151
151.250.35.66.IN-ADDR.ARPA is a nickname for 151.0/24.250.35.66.IN-ADDR.ARPA
151.0/24.250.35.66.IN-ADDR.ARPA domain name pointer star.slashdot.org

My box:

> uname -a
FreeBSD sewickley.research.intel-research.net 4.9-RELEASE FreeBSD 4.9-RELEASE #2: Sat May 15 03:06:11 EDT 2004     bkarp at sewickley.research.intel-research.net:/usr/src/sys/compile/SEWICKLEY  i386

> $JAVAHOME/bin/java -version
java version "1.4.2-p5"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-p5-bkarp_13_nov_2003_01_32)
Java HotSpot(TM) Client VM (build 1.4.2-p5-bkarp_13_nov_2003_01_32, mixed mode)

I should add that forward lookups appear to work in Java on my box--use them
all the time to make outbound network connections from Java programs.

Again, the odd thing is that I don't see queries going out on the wire for
reverse lookups done in Java with getHostName(). Bizarre.

Other suggestions most welcome--am happy to try other tests, as well.

Thanks again,
-Brad, bkarp at cs.cmu.edu


More information about the freebsd-java mailing list