From owner-freebsd-java@FreeBSD.ORG Mon Feb 4 13:44:46 2013 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 1C6539FB for ; Mon, 4 Feb 2013 13:44:46 +0000 (UTC) (envelope-from achill@smadev.internal.net) Received: from smadev.internal.net (adsltrust.ath.forthnet.gr [194.219.204.174]) by mx1.freebsd.org (Postfix) with ESMTP id 7A92D1CDF for ; Mon, 4 Feb 2013 13:44:44 +0000 (UTC) X-Bogosity: No, tests=bogofilter Received: from smadev.internal.net (localhost [127.0.0.1]) by smadev.internal.net (8.14.5/8.14.5) with ESMTP id r14DGc6E098958 for ; Mon, 4 Feb 2013 15:16:38 +0200 (EET) (envelope-from achill@smadev.internal.net) Received: (from achill@localhost) by smadev.internal.net (8.14.5/8.14.5/Submit) id r14DGc0B098957 for freebsd-java@freebsd.org; Mon, 4 Feb 2013 15:16:38 +0200 (EET) (envelope-from achill@smadev.internal.net) From: Achilleas Mantzios To: freebsd-java@freebsd.org Subject: FreeBSD pl/java problem : backend hangs Date: Mon, 04 Feb 2013 15:16:38 +0200 Message-ID: <1624161.qcCm5cgsyy@smadev.internal.net> Organization: Dynacom Tankers Mgmt User-Agent: KMail/4.8.4 (FreeBSD/8.3-RELEASE; KDE/4.8.4; amd64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: itdev@smadev.internal.net List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Feb 2013 13:44:46 -0000 Hello community, I am running postgresql 9.2.2 with openjdk version "1.6.0_32" OpenJDK Runtime Environment (build 1.6.0_32-b25) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) On FreeBSD 8.3-RELEASE I am having trouble even running simple tests like : CREATE FUNCTION getsysprop(VARCHAR) RETURNS VARCHAR AS 'java.lang.System.getProperty' LANGUAGE java; SELECT getsysprop('user.home'); When i do that, the session hangs, and have to kill -9 the backend. Searching with truss got : gettimeofday({1359983241.596250 },0x0) = 0 (0x0) gettimeofday({1359983241.596275 },0x0) = 0 (0x0) gettimeofday({1359983241.596300 },0x0) = 0 (0x0) gettimeofday({1359983241.596327 },0x0) = 0 (0x0) gettimeofday({1359983241.596352 },0x0) = 0 (0x0) gettimeofday({1359983241.596378 },0x0) = 0 (0x0) gettimeofday({1359983241.596403 },0x0) = 0 (0x0) gettimeofday({1359983241.596431 },0x0) = 0 (0x0) gettimeofday({1359983241.596458 },0x0) = 0 (0x0) gettimeofday({1359983241.596482 },0x0) = 0 (0x0) gettimeofday({1359983241.596507 },0x0) = 0 (0x0) gettimeofday({1359983241.596532 },0x0) = 0 (0x0) gettimeofday({1359983241.596556 },0x0) = 0 (0x0) _umtx_op(0x7fffffffc7e8,0x3,0x1,0x0,0x0,0x1) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) while ktrace gave : 98910 initial thread CALL gettimeofday(0x7fffffffc900,0) 98910 initial thread RET gettimeofday 0 98910 initial thread CALL gettimeofday(0x7fffffffc900,0) 98910 initial thread RET gettimeofday 0 98910 initial thread CALL gettimeofday(0x7fffffffc900,0) 98910 initial thread RET gettimeofday 0 98910 initial thread CALL gettimeofday(0x7fffffffc900,0) 98910 initial thread RET gettimeofday 0 98910 initial thread CALL gettimeofday(0x7fffffffc940,0) 98910 initial thread RET gettimeofday 0 98910 initial thread CALL _umtx_op(0x7fffffffc7e8,0x3,0x1,0,0) 98910 initial thread RET _umtx_op 0 98910 initial thread CALL sigprocmask(SIG_BLOCK,0x7fffffffc780,0x8016167d8) 98910 initial thread RET sigprocmask 0 98910 initial thread CALL sigprocmask(SIG_SETMASK,0x8016167d8,0) 98910 initial thread RET sigprocmask 0 98910 initial thread CALL sigprocmask(SIG_BLOCK,0x7fffffffc6e0,0x8016167d8) 98910 initial thread RET sigprocmask 0 98910 initial thread CALL sigprocmask(SIG_SETMASK,0x8016167d8,0) 98910 initial thread RET sigprocmask 0 98910 initial thread CALL _umtx_op(0x8f8dc4280,0x11,0,0,0) I found some relevant problems with FreeBSD systems hanging after an _umtx_op but all those point to threading problems that now are solved. I found nothing modern about _umtx_op. I know FreeBSD is not a "Tier-1" platform for postgresql (nor java), but this is my main platform and i'd like to stick with this. Is there anything i could do to get closer to make pl/java work with FreeBSD? Also read this http://postgresql.1045698.n5.nabble.com/Java-VM-stalls-during-quot-install-jar-quot-td3290754.html thread. Very close to my situation. JNI standalone also worked for me. Any hints/pointers ? - Achilleas Mantzios IT DEV IT DEPT