From owner-freebsd-java@FreeBSD.ORG Mon May 26 11:06:51 2008 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 9C443106564A for ; Mon, 26 May 2008 11:06:51 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 877F28FC42 for ; Mon, 26 May 2008 11:06:51 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4QB6pHT064957 for ; Mon, 26 May 2008 11:06:51 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4QB6p20064953 for freebsd-java@FreeBSD.org; Mon, 26 May 2008 11:06:51 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 26 May 2008 11:06:51 GMT Message-Id: <200805261106.m4QB6p20064953@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-java@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-java@FreeBSD.org 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: Mon, 26 May 2008 11:06:51 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- s ports/60083 java java/jdk14 - Unsafe use of getaddrinfo in jvm 1.4.2-p5 o java/105482 java diablo-jdk1.5.0/jdk-1.5.0 java.nio.Selector bug o java/110912 java Java krb5 client leaks UDP connections o java/112595 java Java appletviewer frequently hangs (kse_release loop) o ports/113467 java Multiple "missing return value" errors building JDK on o java/114644 java tomcat goes out of PermSpace, jvm crashes o java/118496 java Eclipse packages do not work with 6.3-RC1/amd64 o java/118956 java eclipse and netbeans break on diablo-jdk15 o ports/119732 java java/linux-sun-jre16: linux-sun-jre16 plugin doesn't w o ports/120372 java java/linux-sun-jdk16: linux-sun-jre1.6.0 plugin doesn' o ports/121420 java java/jdk16: Java applet fails to find class under fire o java/121692 java java/jdk16: Java 1.5 1.5.0.14p8 crashes in RMI TCP Con o java/122513 java native JDKs unbuildable with Linux ones o java/123555 java linux-sun-jdk15, linux-sun-jdk16 produce a coredump 14 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- s ports/56928 java jce-aba port should install to $JAVA_HOME/jre/lib/ext s java/62837 java linux-sun-jdk14 executables hang with COMPAT_LINUX in o ports/84742 java make ports/java/jdk14 use dynamic Motif librarires o java/97461 java Diablo JDK does not report Update level in a format su o ports/113751 java java/linux-sun-jdk15: linux-sun-jdk-1.5.0.12,2 - java o ports/115279 java [UPDATE] java/java3d to 1.5.1 o java/115773 java [request] java.nio channel selectors should use kqueue o ports/116082 java java/linux-sun-jdk16 jconsole is unable to connect to o java/116667 java linux-sun-javac1.4 hangs on SMP o ports/116841 java cannot build java/jdk16 by using java/linux-sun-jdk16 o java/119063 java An unexpected error has been detected by Java Runtime o java/119654 java jdk 1.6: java.awt.SplashScreen#getSplashScreen throws o java/120146 java netbeans 6.0 crash on amd64 o ports/121416 java java/jdk15 can't build if BIN environment variable is 14 problems total. From owner-freebsd-java@FreeBSD.ORG Wed May 28 09:33:48 2008 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8900B1065671; Wed, 28 May 2008 09:33:48 +0000 (UTC) (envelope-from vova@sw.ru) Received: from relay.sw.ru (mailhub.sw.ru [195.214.232.25]) by mx1.freebsd.org (Postfix) with ESMTP id E21E28FC1F; Wed, 28 May 2008 09:33:47 +0000 (UTC) (envelope-from vova@sw.ru) Received: from vbook.fbsd.ru ([10.30.1.111]) (authenticated bits=0) by relay.sw.ru (8.13.4/8.13.4) with ESMTP id m4S8og0V007916 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 28 May 2008 12:50:44 +0400 (MSD) Received: from vova by vbook.fbsd.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1K1HMo-0002Ek-Rk; Wed, 28 May 2008 12:50:42 +0400 From: Vladimir Grebenschikov To: java@freebsd.org Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: SWsoft Date: Wed, 28 May 2008 12:50:42 +0400 Message-Id: <1211964642.1600.39.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.22.2 FreeBSD GNOME Team Port Sender: Vladimir Grebenschikov Cc: eclipse@freebsd.org Subject: After recent upgrade of java/eclipse-devel and java/jdk16 eclipse does not work for my any more X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: vova@fbsd.ru List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2008 09:33:48 -0000 Hi FreeBSD 8-CURRENT. % pkg_info -I '*jdk*' '*eclipse*' eclipse-devel-3.3.2 An open extensible IDE for anything and nothing in particul jdk-1.6.0.3p4_1 Java Development Kit 1.6.0 % % java -version java version "1.6.0_03-p4" Java(TM) SE Runtime Environment (build 1.6.0_03-p4-root_28_may_2008_02_51-b00) Java HotSpot(TM) Server VM (build 1.6.0_03-p4-root_28_may_2008_02_51-b00, mixed mode) % Just before upgrade of these packages everything works fine. Starting eclipse shows splash-screen, and then show popup with reference on following log file % cat /usr/home/vova/.eclipse/org.eclipse.platform_3.3.0_1767688504/configuration/1211961335285.log !SESSION 2008-05-28 11:55:32.881 ----------------------------------------------- eclipse.buildId=M20080221-1800 java.version=1.6.0_03-p4 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=freebsd, ARCH=x86, WS=gtk, NL=ru_RU Command-line arguments: -os freebsd -ws gtk -arch x86 !ENTRY org.eclipse.equinox.app 2008-05-28 11:55:43.301 !MESSAGE Product org.eclipse.sdk.ide could not be found. !ENTRY org.eclipse.osgi 4 0 2008-05-28 11:55:43.401 !MESSAGE Application error !STACK 1 java.lang.RuntimeException: No application id has been found. at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:236) at org.eclipse.equinox.internal.app.EclipseAppContainer.start(EclipseAppContainer.java:98) at org.eclipse.equinox.internal.app.Activator.addingService(Activator.java:112) at org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(ServiceTracker.java:1064) at org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialServices(ServiceTracker.java:926) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:330) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:274) at org.eclipse.equinox.internal.app.Activator.start(Activator.java:54) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340) at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at org.eclipse.core.internal.runtime.PlatformActivator.startAppContainer(PlatformActivator.java:47) at org.eclipse.core.internal.runtime.PlatformActivator.start(PlatformActivator.java:32) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297) !ENTRY org.eclipse.osgi 2 0 2008-05-28 11:55:44.067 ... Any hints will be very appreciated. PS: Removing .eclipse does not helps. -- Vladimir B. Grebenschikov vova@fbsd.ru From owner-freebsd-java@FreeBSD.ORG Wed May 28 16:02:39 2008 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 4CF47106564A for ; Wed, 28 May 2008 16:02:39 +0000 (UTC) (envelope-from seanjstrand@gmail.com) Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.174]) by mx1.freebsd.org (Postfix) with ESMTP id 336EB8FC1B for ; Wed, 28 May 2008 16:02:39 +0000 (UTC) (envelope-from seanjstrand@gmail.com) Received: by wf-out-1314.google.com with SMTP id 24so2506107wfg.7 for ; Wed, 28 May 2008 09:02:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=VV9etvbVlUSNEgIAChUBX4CAPpctpFqELqBSEks8H7A=; b=BH4caRd64B4wagjw3loJM+9W+ntRhWFuyv8Euk2FjGq/7VG+mde1pal0SazK6k+B4mostY4Tn0Ta0lnEnqWCloOsamDkSpsEejk9B+03ElCo8Qr1C000eCeQ52ZxFlir8ioIxZ6s24RyvOUe0tkryY26V5KTMdzZQWKyjn9wyVc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=qKTmuqbcPZp+fb8elRdjbC69Fj5sltjVIEcSVuytUTWv34gLZzV6RRs/6vbCxqx7iKd3c672nl/Emz67i0EeJ6nETeeDIaYMw6KtYVplwh2kKKS9l7iAoUSP7nBoLqwvUvP3fDaqbTHYmKvJc0fQPgGsSCrSoEfnzaaZZlv4rDo= Received: by 10.143.156.15 with SMTP id i15mr1119792wfo.4.1211990558868; Wed, 28 May 2008 09:02:38 -0700 (PDT) Received: by 10.142.191.14 with HTTP; Wed, 28 May 2008 09:02:38 -0700 (PDT) Message-ID: <7619cc20805280902t500164fcs1ad937210375daa7@mail.gmail.com> Date: Wed, 28 May 2008 16:02:38 +0000 From: "SEan Strand" To: freebsd-java@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: java/120146 Netbeans6.0 Crashes on AMD64 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: Wed, 28 May 2008 16:02:39 -0000 The Netbeqans6.0 should be upgraded to 6.1 and should be booted using the: /usr/local/netbeans/bin/netbeans -- jdkhome=/usr/local/jdk1.6.0. If you still carn't boot then pop in the above line into /usr/local/netbeans/etc/netbeans.conf file. The same result is achieved. If you require jdk1.,5.0 or jdk1.4.2 then add it in under via the tools/java platform.options. Enjoy your Beans!! SEanS From owner-freebsd-java@FreeBSD.ORG Fri May 30 03:07:23 2008 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB3F71065670 for ; Fri, 30 May 2008 03:07:23 +0000 (UTC) (envelope-from jopens@gmail.com) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.228]) by mx1.freebsd.org (Postfix) with ESMTP id B65CE8FC0C for ; Fri, 30 May 2008 03:07:23 +0000 (UTC) (envelope-from jopens@gmail.com) Received: by rv-out-0506.google.com with SMTP id b25so4455390rvf.43 for ; Thu, 29 May 2008 20:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=AvBpBKBsM3u+EUyOxM8M2QENq2ygkSHQk0RQs9L6duI=; b=EVwkE9uwy1dat9e+qPUzu6krdDBikG99xrQiIPSTGT3bMryRBRS3lRvddh57UmUw2EToJTOfCVCTqttg1SJmqw2Urj/2EaoWJ2WHoubw7HVJ4XKSd9r/3AKEoGVEyHwoAW2tvHbv2ijjrfMYhASP2ix1f1V3VMhIYZpa/dca4/Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=RbMQyjP6Jj+sWJfJdTVS4oTmKdzqFoiLNpNhTAkoe+RO/D/ZayQfkItQisFQVxrgBmiwgxgBDTHJJ0lbyQkUW4iYAdnvvFmSd+k36PBA41tKUUSmubw7o3b6QITeHLug/Qk8SvhDV337wLUVM0lmizvTNqghBi4rxxkMTxtRSco= Received: by 10.141.163.12 with SMTP id q12mr2675728rvo.260.1212115195362; Thu, 29 May 2008 19:39:55 -0700 (PDT) Received: by 10.141.96.1 with HTTP; Thu, 29 May 2008 19:39:55 -0700 (PDT) Message-ID: <318ac0700805291939tb65cf5dh256616864df62ded@mail.gmail.com> Date: Fri, 30 May 2008 02:39:55 +0000 From: "=?GB2312?B?u8bOxLvU?=" To: java@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: JDK+libthr on STABLE 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: Fri, 30 May 2008 03:07:24 -0000 hi, I try to run java to call external program heavily on very recent STABLE. Somtimes java hang on calling external program. ps show some process name. 11599 p9 RL+ 0:02.77 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12431 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12432 p9 Z+ 0:00.01 12433 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12434 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12435 p9 RL+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12436 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12438 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell and top show java suck on umtxn status. Ctl+\ also could not dump hotspot info. Both JDK5 and JDK6 have same problem. But under FreeBSD 7.0R, the problem gone. Any ideas? This is the sample java code: import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class TestShell { int maxTrial = 100; ExecutorService pool = Executors.newFixedThreadPool(10); private TrialThread[] tialThreads; public TestShell() { tialThreads = new TrialThread[maxTrial]; for (int i = 0; i < maxTrial; i++) { tialThreads[i] = new TrialThread(); } } public static void main(String[] args) { TestShell ts = new TestShell(); for (int i = 0; i < 100; i++) ts.test(); System.exit(0); } public void test() { Future[] futs = new Future[maxTrial]; for (int i = 0; i < maxTrial; i++) { // tialThreads[i].setTrialOrg(); futs[i] = pool.submit(tialThreads[i]); } try { for (int j = 0; j < tialThreads.length; j++) { // System.out.println(futs[j].isDone()); Boolean b = futs[j].get(); System.out.println("name: "+j+" "+b); } } catch (Exception ex) { ex.printStackTrace(); } } class TrialThread implements Callable { private ShellWrapper shell = new ShellWrapper(); public TrialThread() { } public Boolean call() { try { shell.shell(); } catch (Exception ex) { ex.printStackTrace(); } return new Boolean(true); } } } class ShellWrapper { public void shell() { //long now = System.currentTimeMillis(); try { final Process process = new ProcessBuilder( new String[]{ "/bin/test", ///home/hwh/try/locsat/src/LocSAT/LocSAT", "-s", "sta", "-d", "in", "-c" ,"ctl", "-o", "o" }) .directory(new File("*/home/hwh/try/locsat/src/LocSAT/*")) .redirectErrorStream(true).start(); /*final Process process = new ProcessBuilder(new String[] { "/bin/ls", "/" }).redirectErrorStream(true).start(); */ // System.out.println("process create time: // "+(System.currentTimeMillis()-now)); //new StreamGobbler(process.getInputStream()).start(); process.waitFor(); /** * XXX The current behavior dates back to the rewrite of the Process code * back in 1.2/1.3 which removed the dangerous buffering of all subprocess * output. In order to release all resources, user code must either invoke * Process.destroy or manually close the three subprocess streams */ // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4784692 //process.getErrorStream().close(); //process.getInputStream().close(); //process.getOutputStream().close(); process.destroy(); // System.out.println("shell time: "+(System.currentTimeMillis()-now)); } catch (Exception ex) { ex.printStackTrace(); } } } class StreamGobbler extends Thread { private InputStream is; StreamGobbler(InputStream is) { this.is = is; } public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(is)); while (br.readLine() != null) ; br.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } } From owner-freebsd-java@FreeBSD.ORG Fri May 30 08:15:30 2008 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B152A106564A for ; Fri, 30 May 2008 08:15:30 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from gddsn.org.cn (gddsn.org.cn [218.19.164.145]) by mx1.freebsd.org (Postfix) with ESMTP id 1A6988FC12 for ; Fri, 30 May 2008 08:15:08 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from tp.gddsn.org.cn (unknown [124.81.160.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gddsn.org.cn (Postfix) with ESMTP id CAFC538CB89; Wed, 28 May 2008 23:10:20 +0800 (CST) Message-ID: <483D75D7.10907@gddsn.org.cn> Date: Wed, 28 May 2008 15:10:15 +0000 From: Huang wen hui User-Agent: Thunderbird 2.0.0.12 (X11/20080421) MIME-Version: 1.0 To: stable@freebsd.org, java Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit Cc: Subject: JDK+libthr on STABLE 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: Fri, 30 May 2008 08:15:30 -0000 hi, I try to run java to call external program heavily on very recent STABLE. Somtimes java hang on calling external program. ps show some process name. 11599 p9 RL+ 0:02.77 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12431 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12432 p9 Z+ 0:00.01 12433 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12434 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12435 p9 RL+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12436 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12438 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell and top show java suck on umtxn status. Ctl+\ also could not dump hotspot info. Both JDK5 and JDK6 have same problem. But under FreeBSD 7.0R, the problem gone. Any ideas? This is the sample java code: import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class TestShell { int maxTrial = 100; ExecutorService pool = Executors.newFixedThreadPool(10); private TrialThread[] tialThreads; public TestShell() { tialThreads = new TrialThread[maxTrial]; for (int i = 0; i < maxTrial; i++) { tialThreads[i] = new TrialThread(); } } public static void main(String[] args) { TestShell ts = new TestShell(); for (int i = 0; i < 100; i++) ts.test(); System.exit(0); } public void test() { Future[] futs = new Future[maxTrial]; for (int i = 0; i < maxTrial; i++) { // tialThreads[i].setTrialOrg(); futs[i] = pool.submit(tialThreads[i]); } try { for (int j = 0; j < tialThreads.length; j++) { // System.out.println(futs[j].isDone()); Boolean b = futs[j].get(); System.out.println("name: "+j+" "+b); } } catch (Exception ex) { ex.printStackTrace(); } } class TrialThread implements Callable { private ShellWrapper shell = new ShellWrapper(); public TrialThread() { } public Boolean call() { try { shell.shell(); } catch (Exception ex) { ex.printStackTrace(); } return new Boolean(true); } } } class ShellWrapper { public void shell() { //long now = System.currentTimeMillis(); try { final Process process = new ProcessBuilder( new String[]{ "/bin/test", ///home/hwh/try/locsat/src/LocSAT/LocSAT", "-s", "sta", "-d", "in", "-c" ,"ctl", "-o", "o" }) .directory(new File("/home/hwh/try/locsat/src/LocSAT/")) .redirectErrorStream(true).start(); /*final Process process = new ProcessBuilder(new String[] { "/bin/ls", "/" }).redirectErrorStream(true).start(); */ // System.out.println("process create time: // "+(System.currentTimeMillis()-now)); //new StreamGobbler(process.getInputStream()).start(); process.waitFor(); /** * XXX The current behavior dates back to the rewrite of the Process code * back in 1.2/1.3 which removed the dangerous buffering of all subprocess * output. In order to release all resources, user code must either invoke * Process.destroy or manually close the three subprocess streams */ // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4784692 //process.getErrorStream().close(); //process.getInputStream().close(); //process.getOutputStream().close(); process.destroy(); // System.out.println("shell time: "+(System.currentTimeMillis()-now)); } catch (Exception ex) { ex.printStackTrace(); } } } class StreamGobbler extends Thread { private InputStream is; StreamGobbler(InputStream is) { this.is = is; } public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(is)); while (br.readLine() != null) ; br.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } } From owner-freebsd-java@FreeBSD.ORG Fri May 30 08:48:50 2008 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA32D1065670; Fri, 30 May 2008 08:48:50 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from gddsn.org.cn (gddsn.org.cn [218.19.164.145]) by mx1.freebsd.org (Postfix) with ESMTP id 4B7168FC1D; Fri, 30 May 2008 08:48:28 +0000 (UTC) (envelope-from huang@gddsn.org.cn) Received: from tp.gddsn.org.cn (unknown [124.81.160.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gddsn.org.cn (Postfix) with ESMTP id 3991A38CB9F; Thu, 29 May 2008 10:57:10 +0800 (CST) Message-ID: <483E1B6E.6080204@gddsn.org.cn> Date: Thu, 29 May 2008 02:56:46 +0000 From: Huang wen hui User-Agent: Thunderbird 2.0.0.12 (X11/20080421) MIME-Version: 1.0 To: David Xu , java Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 8bit Cc: Subject: JDK+libthr on STABLE 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: Fri, 30 May 2008 08:48:50 -0000 ÄãºÃ£¬ÐìÏÈÉú£º I try to run java to call external program heavily on very recent STABLE. Somtimes java hang on calling external program. ps show some process name. 11599 p9 RL+ 0:02.77 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12431 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12432 p9 Z+ 0:00.01 12433 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12434 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12435 p9 RL+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12436 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell 12438 p9 R+ 0:00.00 /usr/local/jdk1.5.0/bin/java -classpath . cn/org/gddsn/test/TestShell and top show java suck on umtxn status. Ctl+\ also could not dump hotspot info. Both JDK5 and JDK6 have same problem. But under FreeBSD 7.0R, the problem gone. Any ideas? This is the sample java code: import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class TestShell { int maxTrial = 100; ExecutorService pool = Executors.newFixedThreadPool(10); private TrialThread[] tialThreads; public TestShell() { tialThreads = new TrialThread[maxTrial]; for (int i = 0; i < maxTrial; i++) { tialThreads[i] = new TrialThread(); } } public static void main(String[] args) { TestShell ts = new TestShell(); for (int i = 0; i < 100; i++) ts.test(); System.exit(0); } public void test() { Future[] futs = new Future[maxTrial]; for (int i = 0; i < maxTrial; i++) { // tialThreads[i].setTrialOrg(); futs[i] = pool.submit(tialThreads[i]); } try { for (int j = 0; j < tialThreads.length; j++) { // System.out.println(futs[j].isDone()); Boolean b = futs[j].get(); System.out.println("name: "+j+" "+b); } } catch (Exception ex) { ex.printStackTrace(); } } class TrialThread implements Callable { private ShellWrapper shell = new ShellWrapper(); public TrialThread() { } public Boolean call() { try { shell.shell(); } catch (Exception ex) { ex.printStackTrace(); } return new Boolean(true); } } } class ShellWrapper { public void shell() { //long now = System.currentTimeMillis(); try { final Process process = new ProcessBuilder( new String[]{ "/bin/test", ///home/hwh/try/locsat/src/LocSAT/LocSAT", "-s", "sta", "-d", "in", "-c" ,"ctl", "-o", "o" }) .directory(new File("/home/hwh/try/locsat/src/LocSAT/")) .redirectErrorStream(true).start(); /*final Process process = new ProcessBuilder(new String[] { "/bin/ls", "/" }).redirectErrorStream(true).start(); */ // System.out.println("process create time: // "+(System.currentTimeMillis()-now)); //new StreamGobbler(process.getInputStream()).start(); process.waitFor(); /** * XXX The current behavior dates back to the rewrite of the Process code * back in 1.2/1.3 which removed the dangerous buffering of all subprocess * output. In order to release all resources, user code must either invoke * Process.destroy or manually close the three subprocess streams */ // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4784692 //process.getErrorStream().close(); //process.getInputStream().close(); //process.getOutputStream().close(); process.destroy(); // System.out.println("shell time: "+(System.currentTimeMillis()-now)); } catch (Exception ex) { ex.printStackTrace(); } } } class StreamGobbler extends Thread { private InputStream is; StreamGobbler(InputStream is) { this.is = is; } public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(is)); while (br.readLine() != null) ; br.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } }