From owner-freebsd-java@FreeBSD.ORG Fri Oct 24 09:00:40 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 95617106567C for ; Fri, 24 Oct 2008 09:00:40 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.170]) by mx1.freebsd.org (Postfix) with ESMTP id 188628FC1B for ; Fri, 24 Oct 2008 09:00:39 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: by ug-out-1314.google.com with SMTP id m2so98307uge.39 for ; Fri, 24 Oct 2008 02:00:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:cc:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:mime-version :subject:date:references:x-mailer; bh=SUEqopHqybY2XYN35yYzpdQ/8cISR7sIwkdpteAV7JM=; b=rzaF/qDgXeFDlvjt7zy1jHN0iYDZ/RwLvPb4qSaFsSYhLb3zDXRqqdXel3ZxEkTbl7 sQOTa5VjpWa0cNJY2oDWp0SqZXQRtPeq/JYN03+1L5v/xQPRhrbCL7qW/Qo6i8a49LeQ hdarpP3cNdhuBRW9H4riOGGfU8VsW/issjihE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=cc:message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-mailer; b=o7vMztUGDD+B7urwOBcG28QpkKIizt+JzMmnUFFvURW36lEkw0Zoc0jN+K3uWkaEUa NzNRl05TRDkRZLrkOZgbbkcHmBAIvqRj+TCnqdlUDFpWN/Am5xZXZ4ebtL/IEaMQjEZH B9NI5s7pdRZL95gHW+462/Lnwho3sIB0iUF1s= Received: by 10.67.24.13 with SMTP id b13mr426544ugj.40.1224838838398; Fri, 24 Oct 2008 02:00:38 -0700 (PDT) Received: from ndenev.cmotd.com (blah.sun-fish.com [217.18.249.150]) by mx.google.com with ESMTPS id u6sm122050uge.13.2008.10.24.02.00.33 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 24 Oct 2008 02:00:35 -0700 (PDT) Message-Id: <809AC07C-A656-4FE8-806E-500CD2E65DC4@gmail.com> From: Nikolay Denev To: Greg Lewis In-Reply-To: <20081013204710.GA52841@misty.eyesbeyond.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v929.2) Date: Fri, 24 Oct 2008 12:00:32 +0300 References: <7F26DA41-FF97-4DBB-ADAC-F7E6707B868D@gmail.com> <82DA0FAE-EAFF-4138-9CAA-21750A21D9D6@gmail.com> <20081013204710.GA52841@misty.eyesbeyond.com> X-Mailer: Apple Mail (2.929.2) Cc: freebsd-java@freebsd.org Subject: Re: Serious problem with RMI on jdk15 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, 24 Oct 2008 09:00:40 -0000 On 13 Oct, 2008, at 23:47 , Greg Lewis wrote: > On Mon, Oct 13, 2008 at 05:58:58PM +0300, Nikolay Denev wrote: >> On Oct 13, 2008, at 5:47 PM, Nikolay Denev wrote: >>> On Oct 9, 2008, at 4:35 PM, Nikolay Denev wrote: >>> >>>> Hi All, >>>> >>>> I have the following problem : when I connect to a jmxremote >>>> enabled application with jconsole the whole VM crashes with >>>> segmentation fault. >>>> >>> [...snip...] >>>> >>>> I'm running amd64 7.1-PRE from yesterday, and the jdk is >>>> jdk-1.5.0.14p8_3,1 >>>> >>>> Any help is greatly appreciated! >>>> >>>> Thanks, >>>> Nikolay Denev >>> >>> I think I've tracked down the problem. >>> The JVM crashes when one requests the TotalPhysicalMemory from the >>> OperatingSystem bean. >>> The strange thing is that Sun specifies this value as "long", but >>> how this can work on 64bit machines with many gigabytes of memory? >>> >>> What BSD patchset does is read the hw.physmem sysctl, which returns >>> unsigned long, and then cast it to jlong and probably this is where >>> the problem is. >>> I've tried disabling the sysctl and hardcoding the result and my JVM >>> does not crash anymore. >>> Jconsole still does not show anything though.... and the same test >>> program produces info when used with the diablo-jdk15... >>> >>> >>> Regards, >>> Nikolay Denev >> >> As I read this now, It's not exactly correct, longs should be 4 bytes >> on 32bit archs, and 8bytes on 64bit archs. >> So the storage type for TotalPhysicalMemory should be ok. Maybe jlong >> is not correctly adjusted to 8bytes on 64bit architectures? > > A jlong is typedef'ed as a 'long long' on both 32 and 64 bit > architectures. > How much memory does the machine have and what architecture is it? > > -- > Greg Lewis Email : glewis@eyesbeyond.com > Eyes Beyond Web : http:// > www.eyesbeyond.com > Information Technology FreeBSD : glewis@FreeBSD.org Hi Greg, The real problem is that in the getTotalPhysicalMemory routine the rlen variable type used in the sysctl() call is 'int' which is 32bit, while it needs to be 64bit size_t. This is a patch for the bsd-jdk15-patchset version 8 : --- jdk15.patches 2008-02-05 07:01:27.000000000 +0200 +++ jdk15.patches.fixed 2008-10-24 11:58:53.000000000 +0300 @@ -90835,7 +90835,7 @@ +#ifdef _ALLBSD_SOURCE + unsigned long result; + int mib[2]; -+ int rlen; ++ size_t rlen; + + mib[0] = CTL_HW; + mib[1] = HW_PHYSMEM; -- Regards, Nikolay Denev