From owner-freebsd-java@FreeBSD.ORG Sun Nov 27 01:50:17 2005 Return-Path: X-Original-To: java@freebsd.org Delivered-To: freebsd-java@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1B6A816A41F; Sun, 27 Nov 2005 01:50:17 +0000 (GMT) (envelope-from arno@heho.snv.jussieu.fr) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by mx1.FreeBSD.org (Postfix) with ESMTP id 79D1243D5E; Sun, 27 Nov 2005 01:50:16 +0000 (GMT) (envelope-from arno@heho.snv.jussieu.fr) Received: from heho.snv.jussieu.fr (heho.snv.jussieu.fr [134.157.184.22]) by shiva.jussieu.fr (8.13.5/jtpda-5.4) with ESMTP id jAR1oEED078622 ; Sun, 27 Nov 2005 02:50:14 +0100 (CET) X-Ids: 165 Received: from heho.labo (localhost [127.0.0.1]) by heho.snv.jussieu.fr (8.13.3/jtpda-5.2) with ESMTP id jAR1oD4u081808 ; Sun, 27 Nov 2005 02:50:13 +0100 (MET) Received: (from arno@localhost) by heho.labo (8.13.3/8.13.1/Submit) id jAR1oCx0081805; Sun, 27 Nov 2005 02:50:12 +0100 (MET) (envelope-from arno) Sender: arno@heho.snv.jussieu.fr To: amd64@freebsd.org From: "Arno J. Klaassen" Date: 27 Nov 2005 02:50:12 +0100 Message-ID: Lines: 114 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.7.2 (shiva.jussieu.fr [134.157.0.165]); Sun, 27 Nov 2005 02:50:14 +0100 (CET) X-Antivirus: scanned by sophie at shiva.jussieu.fr X-Miltered: at shiva.jussieu.fr with ID 438910D6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! Cc: java@freebsd.org, freebsd-emulation@freebsd.org Subject: quest for help on a linux emul problem (source unknown) 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: Sun, 27 Nov 2005 01:50:17 -0000 Hello, I try to get a commercial linux32 package to work on amd64; this package includes it's own binary distrib of some linux-jdk1.3.1 and works OK on i386 (RELENG_5 and RELENG_6) but hangs on amd64-RELENG_6 (though it did work on a couple of months old amd64-RELENG-5, but I do not any longer have such a box around ... ). I write this email in the hope someone can put me on the right track to nail down this problem : when I do a ktrace on i386 I get : CALL mincore(0xbfbfc480,0) RET mincore 0 CALL #175(0,0,0xbfbfc2b4,0x8) RET #175 0 CALL #175(0x1,0xbfbfc3b8,0xbfbfc338,0x8) RET #175 0 CALL mincore(0xbfbfc290,0) RET mincore 0 CALL getdomainname(0xbfbfc288,0) RET getdomainname 0 then some dozens of : CALL #175(0x2,0xbfbfc338,0,0x8) RET #175 0 CALL mincore(0xbfbfc480,0) RET mincore 0 CALL #175(0,0,0xbfbfc2b4,0x8) RET #175 0 CALL #175(0x1,0xbfbfc3b8,0xbfbfc338,0x8) RET #175 0 CALL mincore(0xbfbfc290,0) RET mincore 0 CALL getdomainname(0xbfbfc288,0) RET getdomainname 0 and finally : CALL #175(0x2,0xbfbfc338,0,0x8) RET #175 0 CALL write(0xb,0x83189e8,0x18) GIO fd 11 wrote 24 bytes On amd64-RELENG_6 it eternally loops in phase2 and never reaches the 'finally'. Iff I understand correctly (far from sure!) and correct for different syscall-numbers, I get : ask-for-initing-something { gettimeofday() sigprocmask(SIG_BLOCK,..) sigprocmask(SIG_UNBLOCK,..) gettimeofday() nanosleep() } while-not-OK { sigprocmask(SIG_SETMASK,..) gettimeofday() sigprocmask(SIG_BLOCK,..) sigprocmask(SIG_UNBLOCK,..) gettimeofday() nanosleep() } OK! { sigprocmask(SIG_SETMASK,..) continue() } Since the program works OK in terminal mode, the problem very probably is in the jdk-execution. I re-downloaded the jdk13 sources and found that only at two places sigprocmask() is called with SIG_UNBLOCK as argument, and one of them only seems to serve the purpose of a work-around : * a workaround for the preemptive-close * problem on Linux (bug #4344135); A thread currently waiting in * a I/O operation will not wake up if one the file involved * is actually closed (last close - the file is no longer accessible, * but the thread is still waiting in the kernel). NB, this is a linux-jdk-1.3.0 problem, solved in linux-jdk-1.3.1, so "an sich" not involved in my problem, but the idea of a thread not waking up or signal not getting correctly delivered seems plausible to my simple end-user mind. once again, if this kind of pseudo-code sounds familiar to someone, please give me some hints which way to go to write a simple test-program to pinpoint the problem. Thank you very much for your time anyway. Regards, Arno -- Arno J. Klaassen SCITO S.A. 8 rue des Haies F-75020 Paris, France http://scito.com