From owner-freebsd-java@FreeBSD.ORG Tue Oct 30 03:56:42 2007 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49CDE16A46B for ; Tue, 30 Oct 2007 03:56:42 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 2CDB113C4C8 for ; Tue, 30 Oct 2007 03:56:42 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id 7B8B61A4D84; Mon, 29 Oct 2007 18:50:05 -0700 (PDT) Date: Mon, 29 Oct 2007 18:50:05 -0700 From: Alfred Perlstein To: Nick Johnson Message-ID: <20071030015005.GM33488@elvis.mu.org> References: <20071023170536.H25435@turing> <20071024210348.GA34044@misty.eyesbeyond.com> <20071026205754.15950c80@tinca> <20071026121159.A25435@turing> <20071026134734.M25435@turing> <20071026162351.B25435@turing> <20071028130627.A25435@turing> <20071028141053.G25435@turing> <20071029152022.H25435@turing> <20071029163446.L25435@turing> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="4Epv4kl9IRBfg3rk" Content-Disposition: inline In-Reply-To: <20071029163446.L25435@turing> User-Agent: Mutt/1.4.2.3i X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-java@freebsd.org Subject: Re: Simple, reliable test case for name resolution problem X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2007 03:56:42 -0000 --4Epv4kl9IRBfg3rk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline * Nick Johnson [071029 18:31] wrote: > 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! > > } > } > Please try attached patch from cvs: jhb 2007-03-12 19:51:57 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) lib/libc/resolv res_send.c Log: MFC: Don't reject file descriptors higher than FD_SETSIZE when using kevent(2). Revision Changes Path 1.2.2.5 +5 -7 src/lib/libc/resolv/res_send.c --4Epv4kl9IRBfg3rk--