Skip to content

Instantly share code, notes, and snippets.

@rose00
Created March 16, 2011 07:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rose00/872165 to your computer and use it in GitHub Desktop.
Save rose00/872165 to your computer and use it in GitHub Desktop.
resource_allocate_bytes SEGV (-d64 -XX:-UseCompressedOops)
Introduction first; transcript and data dump is below.
The JVM_ArrayCopy bug appears in amd64 with UseCompressedOops turned on (the default). The problem appears to be a trashed _klass field in the array for a source string (which happens to be "main", suggesting an early demise).
If you add -XX:-UseCompressedOops, you get a SEGV error outside of JVM_ArrayCopy and in resource_allocate_bytes instead. In fact, I get the same error in resource_allocate_bytes in both 32-bit and 64-bit builds. This routine is a low-level allocator which picks up Thread::current() and allocates bytes from a buffer on the current thread. (The bytes are scoped inside the dynamic extent of a ResourceMark, and are usually treated as thread-local.)
In 32 bits (x86 not amd64), the immediate cause of the resource_allocate_bytes failure is unexpected NULL contents in the _sp_map array (used in threadLS_bsd_x86.cpp). If I put a print statement in pd_set_thread I see that one or two threads declare themselves in an orderly way. If I put a print statement in resource_allocate_bytes I see that many successful allocations are done, with the _sp_map array apparently set correctly, since the allocations succeed. Eventually an allocation comes along and the _sp_map has been cleared (totally, as it happens). The allocation logic tries to use NULL as the Thread::current() value and gets a SEGV.
In 64 bits (amd64), the logic for getting Thread::current() is totally different; it uses [dyld_stub_]pthread_getspecific. In this case, a garbage value is getting returned from pthread_getspecific. (See os_bsd.inline.hpp.)
I have no idea why pthread_getspecific would return garbage on 64 bits, and why _sp_map would be completely clear on 32 bits.
Transcript:
--------
$DAVINCI/sources/build/bsd-amd64/j2sdk-image/bin/java -XX:-UseCompressedOops -XX:+ShowMessageBoxOnError
==============================================================================
Unexpected Error
------------------------------------------------------------------------------
SIGSEGV (0xb) at pc=0x0000000101cee7fc, pid=5694, tid=4298117120
Do you want to debug the problem?
To debug, run 'gdb /proc/5694/exe 5694'; then switch to thread 4298117120 (4298117120)
Enter 'yes' to launch gdb automatically (PATH must include gdb)
Otherwise, press RETURN to abort...
==============================================================================
yes
GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...set stop-on-solib-events 1
No symbol table is loaded. Use the "file" command.
/proc/5694/exe: No such file or directory
$DAVINCI/sources/hotspot/5694: No such file or directory
Attaching to process 5694.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ......... done
0x00007fff869b0fca in __semwait_signal ()
(gdb) info threads
5 0x00007fff869b0fca in __semwait_signal ()
4 0x00007fff869b0fca in __semwait_signal ()
3 0x00007fff869b0fca in __semwait_signal ()
2 0x00007fff869c4652 in __wait4 ()
* 1 "com.apple.main-thread" 0x00007fff869b0fca in __semwait_signal ()
(gdb) thread 2
[Switching to thread 2 (process 5694)]
0x00007fff869c4652 in __wait4 ()
(gdb) info thread
Thread 2 has current state "WAITING"
Mach port #0xf03 (gdb port #0x1503)
frame 0: 0x00007fff869c4652 in __wait4 ()
pthread ID: 0x100301000
system-wide unique thread id: 0x78257
total user time: 19055000
total system time: 8762000
scaled cpu usage percentage: 0
scheduling policy in effect: 0x1
run state: 0x3 (WAITING)
flags: 0x1 (SWAPPED)
number of seconds that thread has slept: 0
current priority: 31
max priority: 63
suspend count: 0.
(gdb) w
#0 0x00007fff869c4652 in __wait4 ()
#1 0x0000000101060c30 in os::fork_and_exec ()
#2 0x000000010108391f in VMError::report_and_die ()
#3 0x00000001015f8a39 in JVM_handle_bsd_signal ()
#4 <signal handler called>
#5 0x0000000101cee7fc in resource_allocate_bytes ()
#6 0x00000001020f2302 in JVM_GetStackAccessControlContext ()
#7 0x0000000103810d6b in ?? ()
#8 0x00000001038059b3 in ?? ()
#9 0x00000001038059b3 in ?? ()
#10 0x000000010380585a in ?? ()
#11 0x0000000103800431 in ?? ()
#12 0x00000001013f4431 in JavaCalls::call_helper ()
#13 0x0000000101043521 in JavaCalls::call_special ()
#14 0x000000010104358f in JavaCalls::call_special ()
#15 0x00000001016f5980 in Threads::create_vm ()
#16 0x00000001014001b6 in JNI_CreateJavaVM ()
#17 0x00000001000012b8 in JavaMain ()
#18 0x00007fff869af536 in _pthread_start ()
#19 0x00007fff869af3e9 in thread_start ()
(gdb) frame 5
#5 0x0000000101cee7fc in resource_allocate_bytes ()
(gdb) info frame
Stack level 5, frame at 0x1003003f0:
rip = 0x101cee7fc in resource_allocate_bytes(unsigned long); saved rip 0x1020f2302
called by frame at 0x100300830, caller of frame at 0x1002fffc8
Arglist at 0x1003003e8, args:
Locals at 0x1003003e8, Previous frame's sp is 0x1003003f0
Saved registers:
rbx at 0x1003003d0, rbp at 0x1003003e0, r12 at 0x1003003d8, rip at 0x1003003e8
(gdb) info reg
rax 0x200000003 8589934595
rbx 0x10260712c 4334842156
rcx 0x100402120 4299170080
rdx 0x100404360 4299178848
rsi 0x100300888 4298115208
rdi 0xffffffffffffffff -1
rbp 0x1003003e0 0x1003003e0
rsp 0x1003003d0 0x1003003d0
r8 0x10197e668 4321699432
r9 0x0 0
r10 0x10272a347 4336034631
r11 0x1020f21f0 4329513456
r12 0x18 24
r13 0x103000000 4345298944
r14 0x100300890 4298115216
r15 0x103000000 4345298944
rip 0x101cee7fc 0x101cee7fc <resource_allocate_bytes(unsigned long)+44>
eflags 0x10206 66054
cs 0x27 39
ss 0x0 0
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) x/i $rip
0x101cee7fc <_Z23resource_allocate_bytesm+44>: mov 0x100(%rax),%rdi
(gdb) x $rax
0x200000003: Cannot access memory at address 0x200000003
(gdb) x/44i $rip-44
#extern char* resource_allocate_bytes(size_t size) {
0x101cee7d0 <_Z23resource_allocate_bytesm>: push %rbp
0x101cee7d1 <_Z23resource_allocate_bytesm+1>: mov %rsp,%rbp
0x101cee7d4 <_Z23resource_allocate_bytesm+4>: push %r12
0x101cee7d6 <_Z23resource_allocate_bytesm+6>: mov %rdi,%r12
0x101cee7d9 <_Z23resource_allocate_bytesm+9>: push %rbx
#### BEGIN HAND-WRITTEN DEBUG CODE ####
# static int k; k++; //@@
# if (Thread::current() == NULL) printf("*** resource_allocate_bytes(%d) at %d\n", size, k);//@@
0x101cee7da <_Z23resource_allocate_bytesm+10>: lea 0x91894b(%rip),%rbx # 0x10260712c <_ZN18ThreadLocalStorage13_thread_indexE>
0x101cee7e1 <_Z23resource_allocate_bytesm+17>: incl 0x9385c9(%rip) # 0x102626db0 <_ZZ23resource_allocate_bytesmE1k>
0x101cee7e7 <_Z23resource_allocate_bytesm+23>: movslq (%rbx),%rdi
0x101cee7ea <_Z23resource_allocate_bytesm+26>: callq 0x1023cfae4 <dyld_stub_pthread_getspecific>
0x101cee7ef <_Z23resource_allocate_bytesm+31>: test %rax,%rax
0x101cee7f2 <_Z23resource_allocate_bytesm+34>: je 0x101cee839 <_Z23resource_allocate_bytesm+105>
#### END HAND-WRITTEN DEBUG CODE ####
# return Thread::current()->resource_area()->allocate_bytes(size);
0x101cee7f4 <_Z23resource_allocate_bytesm+36>: movslq (%rbx),%rdi
0x101cee7f7 <_Z23resource_allocate_bytesm+39>: callq 0x1023cfae4 <dyld_stub_pthread_getspecific>
0x101cee7fc <_Z23resource_allocate_bytesm+44>: mov 0x100(%rax),%rdi #### SEGV HERE ON GARBAGE VALUE ####
0x101cee803 <_Z23resource_allocate_bytesm+51>: lea 0xf(%r12),%rsi
0x101cee808 <_Z23resource_allocate_bytesm+56>: and $0xfffffffffffffff0,%rsi
0x101cee80c <_Z23resource_allocate_bytesm+60>: mov 0x10(%rdi),%rax
0x101cee810 <_Z23resource_allocate_bytesm+64>: lea (%rax,%rsi,1),%rdx
0x101cee814 <_Z23resource_allocate_bytesm+68>: cmp 0x18(%rdi),%rdx
0x101cee818 <_Z23resource_allocate_bytesm+72>: ja 0x101cee830 <_Z23resource_allocate_bytesm+96>
0x101cee81a <_Z23resource_allocate_bytesm+74>: mov %rdx,0x10(%rdi)
0x101cee81e <_Z23resource_allocate_bytesm+78>: pop %rbx
0x101cee81f <_Z23resource_allocate_bytesm+79>: pop %r12
0x101cee821 <_Z23resource_allocate_bytesm+81>: leaveq
0x101cee822 <_Z23resource_allocate_bytesm+82>: retq
0x101cee823 <_Z23resource_allocate_bytesm+83>: nopw 0x0(%rax,%rax,1)
0x101cee829 <_Z23resource_allocate_bytesm+89>: nopl 0x0(%rax)
0x101cee830 <_Z23resource_allocate_bytesm+96>: pop %rbx
0x101cee831 <_Z23resource_allocate_bytesm+97>: pop %r12
0x101cee833 <_Z23resource_allocate_bytesm+99>: leaveq
(gdb) q
The program is running. Quit anyway (and detach it)? (y or n) y
Detaching from process 5694.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000101cee7fc, pid=5694, tid=4298117120
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (21.0-b03 mixed mode bsd-amd64 )
# Problematic frame:
# C [libjvm.dylib+0x667fc] resource_allocate_bytes(unsigned long)+0x2c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# $DAVINCI/sources/hotspot/hs_err_pid5694.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Abort trap
--------
cat hs_err_pid5694.log
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000101cee7fc, pid=5694, tid=4298117120
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (21.0-b03 mixed mode bsd-amd64 )
# Problematic frame:
# C [libjvm.dylib+0x667fc] resource_allocate_bytes(unsigned long)+0x2c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x0000000103000000): JavaThread "main" [_thread_in_vm, id=3149824, stack(0x0000000100201000,0x0000000100301000)]
siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000200000103
Registers:
RAX=8589934595, RBX=4334842156, RCX=4299170080, RDX=4299178848
RSP=4298114000, RBP=4298114016, RSI=4298115208, RDI=-1
R8 =4321699432, R9 =0, R10=4336034631, R11=4329513456
R12=24, R13=4345298944, R14=4298115216, R15=4345298944
RIP=4325304316, EFLAGS=66054, ERR=4
TRAPNO=14
Top of Stack: (sp=0x00000001003003d0)
0x00000001003003d0: 0000000100404370 0000000103000000
0x00000001003003e0: 0000000100300820 00000001020f2302
0x00000001003003f0: 0000000100300440 00007fff5fc0aeb0
0x0000000100300400: 0000000100300498 00000001030001d0
0x0000000100300410: 0000000103804dd0 0000000100404748
0x0000000100300420: 0000000100404370 0000000100404360
0x0000000100300430: 0000000100404010 00007fff5fc3dbe0
0x0000000100300440: 00000001003004f0 0000000103000000
0x0000000100300450: 0000000103804dd0 0000000100000000
0x0000000100300460: 00000001003008d8 0000000100300898
0x0000000100300470: 0000000100000000 0000000100000000
0x0000000100300480: 0000000100300938 0000000100404848
0x0000000100300490: 00000001003008f0 000000010381bc83
0x00000001003004a0: 00000001003004f0 00007fff5fc0b7bb
0x00000001003004b0: 00000001003004f0 00007fff5fc0d64a
0x00000001003004c0: 00000001003004e0 0000000101072009
0x00000001003004d0: 0000000100300510 0000000100300510
0x00000001003004e0: 0000000100300500 000000010168170f
0x00000001003004f0: 0000000100300510 000000010689a9b0
0x0000000100300500: 0000000100300550 00000001015c6c21
0x0000000100300510: 0000000101928f90 0000000100420cc0
0x0000000100300520: 0000000100300760 0000000100300760
0x0000000100300530: 0000000100300550 000000010107210d
0x0000000100300540: 0000000100300760 0000000000000001
0x0000000100300550: 00000001004010c0 00000001004014c0
0x0000000100300560: 00000001003006e8 000000010007cb07
0x0000000100300570: 00000001003005c0 00007fff5fc0f131
0x0000000100300580: 0100000000000159 000000010272a5a2
0x0000000100300590: 00000001004014c0 0000000000000001
0x00000001003005a0: 00000001003006e8 00000001004014c0
0x00000001003005b0: 00000001003006e8 00000001004010c0
0x00000001003005c0: 0000000100300620 00007fff5fc12b24
Instructions: (pc=0x0000000101cee7fc)
0x0000000101cee7dc: 1d 4b 89 91 00 ff 05 c9 85 93 00 48 63 3b e8 f5
0x0000000101cee7ec: 12 6e 00 48 85 c0 74 45 48 63 3b e8 e8 12 6e 00
0x0000000101cee7fc: 48 8b b8 00 01 00 00 49 8d 74 24 0f 48 83 e6 f0
0x0000000101cee80c: 48 8b 47 10 48 8d 14 30 48 3b 57 18 77 16 48 89
Register to memory mapping:
RAX=8589934595 is an unknown value
RBX=0x000000010260712c: _ZN18ThreadLocalStorage13_thread_indexE+0 in /Users/jrose/Projects/davinci/sources/build/bsd-amd64/lib/amd64/server/libjvm.dylib at 0x0000000101c88000
RCX=4299170080 is an unknown value
RDX=4299178848 is an unknown value
RSP=4298114000 is pointing into the stack for thread: 4345298944
RBP=4298114016 is pointing into the stack for thread: 4345298944
RSI=4298115208 is pointing into the stack for thread: 4345298944
RDI=-1 is an unknown value
R8 =0x000000010197e668: _ZN2os16_processor_countE+0 in /Users/jrose/Projects/davinci/sources/build/bsd-amd64/j2sdk-image/jre/lib/amd64/server/libjvm.dylib at 0x0000000101000000
R9 =0 is an unknown value
R10=0x000000010272a347: num_vtable_chunks+0x1001e7 in /Users/jrose/Projects/davinci/sources/build/bsd-amd64/lib/amd64/server/libjvm.dylib at 0x0000000101c88000
R11=0x00000001020f21f0: JVM_GetStackAccessControlContext+0 in /Users/jrose/Projects/davinci/sources/build/bsd-amd64/lib/amd64/server/libjvm.dylib at 0x0000000101c88000
R12=24 is an unknown value
R13=4345298944 is a thread
R14=4298115216 is pointing into the stack for thread: 4345298944
R15=4345298944 is a thread
Stack: [0x0000000100201000,0x0000000100301000], sp=0x00000001003003d0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libjvm.dylib+0x667fc] resource_allocate_bytes(unsigned long)+0x2c
C [libjvm.dylib+0x46a302] JVM_GetStackAccessControlContext+0x112
j java.security.AccessController.getStackAccessControlContext()Ljava/security/AccessControlContext;+0
j java.security.AccessController.getContext()Ljava/security/AccessControlContext;+0
j java.lang.Thread.init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V+149
j java.lang.Thread.<init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V+45
v ~StubRoutines::call_stub
V [libjvm.dylib+0x3f4431] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x351
V [libjvm.dylib+0x43521] JavaCalls::call_special(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x91
V [libjvm.dylib+0x4358f] JavaCalls::call_special(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Handle, Handle, Thread*)+0x5f
V [libjvm.dylib+0x6f5980] Threads::create_vm(JavaVMInitArgs*, bool*)+0xec0
V [libjvm.dylib+0x4001b6] JNI_CreateJavaVM+0x66
C [java+0x12b8] JavaMain+0xa8
C [libSystem.B.dylib+0x3a536] _pthread_start+0x14b
C [libSystem.B.dylib+0x3a3e9] thread_start+0xd
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.security.AccessController.getStackAccessControlContext()Ljava/security/AccessControlContext;+0
j java.security.AccessController.getContext()Ljava/security/AccessControlContext;+0
j java.lang.Thread.init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V+149
j java.lang.Thread.<init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V+45
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
=>0x0000000103000000 JavaThread "main" [_thread_in_vm, id=3149824, stack(0x0000000100201000,0x0000000100301000)]
Other Threads:
0x0000000100802000 VMThread [stack: 0x0000000164c01000,0x0000000164d01000] [id=1691357184]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
PSYoungGen total 26560K, used 455K [0x0000000146f60000, 0x0000000148d00000, 0x0000000164a00000)
eden space 22784K, 2% used [5485494272,5485960912,5508825088)
from space 3776K, 0% used [5512691712,5512691712,5516558336)
to space 3776K, 0% used [5508825088,5508825088,5512691712)
PSOldGen total 60800K, used 0K [4490002432, 4552261632, 5485494272)
object space 60800K, 0% used [4490002432,4490002432,4552261632)
PSPermGen total 21248K, used 621K [4404019200, 4425777152, 4490002432)
object space 21248K, 2% used [4404019200,4404655144,4425777152)
Code Cache [4353687552, 4356243456, 4404019200)
total_blobs=55 nmethods=0 adapters=31 free_code_cache=50001664 largest_free_block=384
Dynamic libraries:
0x0000000000000000 /usr/lib/libSystem.B.dylib
0x0000000000000000 /usr/lib/system/libmathCommon.A.dylib
0x0000000101000000 /Users/jrose/Projects/davinci/sources/build/bsd-amd64/j2sdk-image/jre/lib/amd64/server/libjvm.dylib
0x0000000000000000 /usr/lib/libstdc++.6.dylib
0x000000010004f000 /Users/jrose/Projects/davinci/sources/build/bsd-amd64/j2sdk-image/jre/lib/amd64/libverify.dylib
0x0000000101c88000 /Users/jrose/Projects/davinci/sources/build/bsd-amd64/lib/amd64/server/libjvm.dylib
0x000000010005e000 /Users/jrose/Projects/davinci/sources/build/bsd-amd64/j2sdk-image/jre/lib/amd64/libjava.dylib
0x0000000100090000 /Users/jrose/Projects/davinci/sources/build/bsd-amd64/j2sdk-image/jre/lib/amd64/libzip.dylib
VM Arguments:
jvm_args: -XX:-UseCompressedOops -XX:+ShowMessageBoxOnError
java_command: <unknown>
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/Users/jrose/env/JAVA_HOME
PATH=/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/jrose/bin:/usr/X11R6/bin:/usr/texbin:/Users/jrose/bin:/usr/X11R6/bin
LD_LIBRARY_PATH=/Users/jrose/env/LD_LIBRARY_PATH
SHELL=/bin/bash
DISPLAY=/tmp/launch-jHaMgO/org.x:0
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x739a00], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGBUS: [libjvm.dylib+0x739a00], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGFPE: [libjvm.dylib+0x5f4bf0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGPIPE: [libjvm.dylib+0x5f4bf0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGXFSZ: [libjvm.dylib+0x5f4bf0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGILL: [libjvm.dylib+0x5f4bf0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGUSR1: SIG_DFL, sa_mask[0]=0x63807efb, sa_flags=0x00000000
SIGUSR2: [libjvm.dylib+0x5f5a30], sa_mask[0]=0x00000000, sa_flags=0x00000042
SIGHUP: SIG_DFL, sa_mask[0]=0x63807efb, sa_flags=0x00000000
SIGINT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGTERM: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGQUIT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
--------------- S Y S T E M ---------------
OS:Bsd
uname:Darwin 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
rlimit: STACK 8192k, CORE 0k, NPROC 266, NOFILE 10240
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1
Memory: 4k page, physical 5830556k(1457639k free)
/proc/meminfo:
vm_info: OpenJDK 64-Bit Server VM (21.0-b03) for bsd-amd64 JRE (1.7.0-internal-jrose_2011_03_15_22_49-b00), built on Mar 15 2011 23:00:00 by "jrose" with gcc 4.0.1 (Apple Inc. build 5494)
time: Wed Mar 16 00:47:14 2011
elapsed time: 816 seconds
--------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment