Simple, reliable test case for name resolution problem
Nick Johnson
freebsd at spatula.net
Mon Oct 29 18:31:49 PDT 2007
The problem is in the number of open file descriptors. Once it crosses
1024, name resolution breaks. This is showing up in Tomcat 6, because
Tomcat 6 is leaking descriptors like a sieve.
Here's a simple test case that demonstrates the problem. On my FreeBSD
6.2 host it bombs every time. On a Linux host, it throws an IOException
opening files (too many open files). On a Windows box it completes
normally.
My uname and java -version, just for completeness:
FreeBSD turing.morons.org 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Jan 21 16:53:54 PST 2007
java version "1.5.0_13-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-p7-root_26_oct_2007_14_03)
The same thing happens with the Diablo JDK.
Here's the code. Save it as Test.java; javac Test.java; java Test
import java.net.*;
import java.util.*;
import java.io.*;
public class Test {
public static void main(String[] args) throws Exception {
ArrayList files = new ArrayList(1024);
System.out.println("Opening lots of files");
for(int i=0; i < 1024; i++) {
files.add(new FileInputStream("/dev/null"));
}
System.out.println("Trying to resolve freebsd.org");
InetAddress.getByName("freebsd.org"); // throws exception!
}
}
--
"Courage isn't just a matter of not being frightened, you know. It's being
afraid and doing what you have to do anyway."
Doctor Who - Planet of the Daleks
This message has been brought to you by Nick Johnson 2.3b1 and the number 6.
http://healerNick.com/ http://morons.org/ http://spatula.net/
More information about the freebsd-java
mailing list