Date: Sun, 3 Apr 2016 16:38:50 +0800 (CST) From: huanghwh <huanghwh@163.com> To: freebsd-java@freebsd.org Subject: Strange behavior of Unsafe. Message-ID: <16d32da1.11c9.153db464a52.Coremail.huanghwh@163.com>
index | next in thread | raw e-mail
Hi, The simple TestUnsafe.java could can crash jvm under openjdk8-8.77.3 RELEASE version. But the debug or fast-debug can pass it. Has anyone see this problem before? Cheers, Huang Wen Hui % cat hs_err_pid3911.log # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00000008020e986d, pid=3911, tid=100110 # # JRE version: OpenJDK Runtime Environment (8.0_77-b03) (build 1.8.0_77-b03) # Java VM: OpenJDK 64-Bit Server VM (25.77-b03 mixed mode bsd-amd64 compressed oops) # Problematic frame: # V [libjvm.so+0x8e986d] JVM_handle_bsd_signal+0x124a5d # # Core dump written. Default location: /opt/workspace/Test/target/classes/java.core # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # --------------- T H R E A D --------------- Current thread (0x000000080302a800): JavaThread "main" [_thread_in_vm, id=100110, stack(0x00007fffdfefe000,0x00007fffdfffe000)] siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 Registers: RAX=0x000000080258a038, RBX=0x000000095a47c910, RCX=0x0000000960200000, RDX=0x0000000000000000 RSP=0x00007fffdfffd8d0, RBP=0x00007fffdfffd900, RSI=0x00007fffdfffd9b0, RDI=0x000000080302a9e0 R8 =0x00000008030124a0, R9 =0x000000080302a800, R10=0x0000000803857868, R11=0x000000080203e830 R12=0x000000080302a800, R13=0x00000008025b4ab0, R14=0x0000000960200000, R15=0x0000000000000000 RIP=0x00000008020e986d, EFLAGS=0x0000000000000005, ERR=0x0000000000000004 TRAPNO=0x000000000000000c Top of Stack: (sp=0x00007fffdfffd8d0) 0x00007fffdfffd8d0: 00000008020e97a0 000000095a47c910 0x00007fffdfffd8e0: 0000000812fff000 000000095a47c910 0x00007fffdfffd8f0: 00007fffdfffd9b0 000000080302a800 0x00007fffdfffd900: 00007fffdfffd978 0000000803857894 0x00007fffdfffd910: 00007fffdfffd9b0 000000080302a800 0x00007fffdfffd920: 00007fffdfffd978 0000000803857627 0x00007fffdfffd930: 00000008038575e2 00007fffdfffd938 0x00007fffdfffd940: 000000095a47c910 00007fffdfffd9b0 0x00007fffdfffd950: 000000095a4abfc8 0000000000000000 0x00007fffdfffd960: 000000095a47c910 0000000000000000 0x00007fffdfffd970: 00007fffdfffd998 00007fffdfffda20 0x00007fffdfffd980: 0000000803849470 0000000000000000 0x00007fffdfffd990: 0000000803851396 0000000960200000 0x00007fffdfffd9a0: 00007fffdfffda58 0000000000000000 0x00007fffdfffd9b0: 00000008bc1889b8 0000000000000000 0x00007fffdfffd9c0: 00000008bc1da728 00000008bc1da728 0x00007fffdfffd9d0: 00000008bc1da6f0 00000008bc1a46b8 0x00007fffdfffd9e0: 00007fffdfffd9e0 000000095a8004cd 0x00007fffdfffd9f0: 00007fffdfffda58 000000095a8005b0 0x00007fffdfffda00: 0000000000000000 000000095a800538 0x00007fffdfffda10: 00007fffdfffd998 00007fffdfffda58 0x00007fffdfffda20: 00007fffdfffdac0 00000008038424e7 0x00007fffdfffda30: 0000000000000000 0000000960200000 0x00007fffdfffda40: 0000000000000000 00000008bc1889b8 0x00007fffdfffda50: 00000008bc1d9c50 00000008bc1d8b80 0x00007fffdfffda60: 0000000000001fa0 000000080302a800 0x00007fffdfffda70: 000000080302a800 000000095a800538 0x00007fffdfffda80: 00007fffdfffde90 0000000000000001 0x00007fffdfffda90: 00007fffdfffdb60 00007fffdfffde98 0x00007fffdfffdaa0: 000000080000000a 000000095a800538 0x00007fffdfffdab0: 0000000803852a20 00007fffdfffdcf0 0x00007fffdfffdac0: 00007fffdfffdc30 0000000801dab086 Instructions: (pc=0x00000008020e986d) 0x00000008020e984d: 0b 41 f7 44 24 30 00 00 00 30 74 08 4c 89 e7 e8 0x00000008020e985d: af e1 fd ff 41 c7 84 24 58 02 00 00 06 00 00 00 0x00000008020e986d: 49 8b 07 46 8b 34 30 49 8b 5c 24 48 4c 8b 7b 08 0x00000008020e987d: 48 8b 43 10 48 83 38 00 74 19 48 8b 73 28 4c 89 Register to memory mapping: RAX=0x000000080258a038: JVM_handle_bsd_signal+0x5c5228 in /usr/local/openjdk8/jre/lib/amd64/server/libjvm.so at 0x0000000801800000 RBX={method} {0x000000095a47c910} 'getInt' '(Ljava/lang/Object;J)I' in 'sun/misc/Unsafe' RCX=0x0000000960200000 is an unknown value RDX=0x0000000000000000 is an unknown value RSP=0x00007fffdfffd8d0 is pointing into the stack for thread: 0x000000080302a800 RBP=0x00007fffdfffd900 is pointing into the stack for thread: 0x000000080302a800 RSI=0x00007fffdfffd9b0 is pointing into the stack for thread: 0x000000080302a800 RDI=0x000000080302a9e0 is an unknown value R8 =0x00000008030124a0 is an unknown value R9 =0x000000080302a800 is a thread R10=0x0000000803857868 is at code_begin+808 in an Interpreter codelet method entry point (kind = native) [0x0000000803857540, 0x0000000803857e40] 2304 bytes R11=0x000000080203e830: JVM_handle_bsd_signal+0x79a20 in /usr/local/openjdk8/jre/lib/amd64/server/libjvm.so at 0x0000000801800000 R12=0x000000080302a800 is a thread R13=0x00000008025b4ab0: gHotSpotVMLongConstants+0x11f48 in /usr/local/openjdk8/jre/lib/amd64/server/libjvm.so at 0x0000000801800000 R14=0x0000000960200000 is an unknown value R15=0x0000000000000000 is an unknown value Stack: [0x00007fffdfefe000,0x00007fffdfffe000], sp=0x00007fffdfffd8d0, free space=1022k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x8e986d] JVM_handle_bsd_signal+0x124a5d j sun.misc.Unsafe.getInt(Ljava/lang/Object;J)I+0 j test.TestUnsafe.main([Ljava/lang/String;)V+61 v ~StubRoutines::call_stub V [libjvm.so+0x5ab086] AsyncGetCallTrace+0xcf776 V [libjvm.so+0x5c7f70] AsyncGetCallTrace+0xec660 V [libjvm.so+0x5cc123] AsyncGetCallTrace+0xf0813 C [libjli.so+0x4a2b] JLI_Launch+0x25bb C [libthr.so.3+0x8814] operator->+0x864 C 0x0000000000000000 Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j sun.misc.Unsafe.getInt(Ljava/lang/Object;J)I+0 j test.TestUnsafe.main([Ljava/lang/String;)V+61 v ~StubRoutines::call_stub --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x000000095bb2c000 JavaThread "Service Thread" daemon [_thread_blocked, id=101177, stack(0x00007fffdeded000,0x00007fffdeeed000)] 0x0000000803030800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=101175, stack(0x00007fffdeeee000,0x00007fffdefee000)] 0x000000080302f800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=101174, stack(0x00007fffdefef000,0x00007fffdf0ef000)] 0x000000080302f000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=101172, stack(0x00007fffdf0f0000,0x00007fffdf1f0000)] 0x000000080302e000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=101033, stack(0x00007fffdf1f1000,0x00007fffdf2f1000)] 0x000000080302d800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=101025, stack(0x00007fffdf2f2000,0x00007fffdf3f2000)] 0x000000080302c800 JavaThread "Finalizer" daemon [_thread_blocked, id=101009, stack(0x00007fffdf3f3000,0x00007fffdf4f3000)] 0x000000080302c000 JavaThread "Reference Handler" daemon [_thread_blocked, id=101008, stack(0x00007fffdf4f4000,0x00007fffdf5f4000)] =>0x000000080302a800 JavaThread "main" [_thread_in_vm, id=100110, stack(0x00007fffdfefe000,0x00007fffdfffe000)] Other Threads: 0x00000008030b6000 VMThread [stack: 0x00007fffdf5f5000,0x00007fffdf6f5000] [id=100992] 0x00000008030b6800 WatcherThread [stack: 0x00007fffdecec000,0x00007fffdedec000] [id=101183] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap: PSYoungGen total 75776K, used 1300K [0x00000008bc180000, 0x00000008c1600000, 0x0000000910a00000) eden space 65024K, 2% used [0x00000008bc180000,0x00000008bc2c51f8,0x00000008c0100000) from space 10752K, 0% used [0x00000008c0b80000,0x00000008c0b80000,0x00000008c1600000) to space 10752K, 0% used [0x00000008c0100000,0x00000008c0100000,0x00000008c0b80000) ParOldGen total 173568K, used 0K [0x0000000813000000, 0x000000081d980000, 0x00000008bc180000) object space 173568K, 0% used [0x0000000813000000,0x0000000813000000,0x000000081d980000) Metaspace used 2464K, capacity 4486K, committed 4864K, reserved 1056768K class space used 261K, capacity 386K, committed 512K, reserved 1048576K Card table byte_map: [0x0000000910a00000,0x00000009111ee000] byte_map_base: 0x000000090c968000 Marking Bits: (ParMarkBitMap*) 0x00000008025b4598 Begin Bits: [0x0000000911737000, 0x000000091569f000) End Bits: [0x000000091569f000, 0x0000000919607000) Polling page: 0x0000000800627000 CodeCache: size=245760Kb used=1072Kb max_used=1073Kb free=244687Kb bounds [0x0000000803842000, 0x0000000803ab2000, 0x0000000812842000] total_blobs=237 nmethods=10 adapters=143 compilation: enabled Compilation events (10 events): Event: 0.138 Thread 0x0000000803030800 6 3 java.lang.String::indexOf (70 bytes) Event: 0.139 Thread 0x0000000803030800 nmethod 6 0x0000000803944e90 code [0x0000000803945020, 0x00000008039453c8] Event: 0.139 Thread 0x0000000803030800 7 3 java.lang.Math::min (11 bytes) Event: 0.139 Thread 0x0000000803030800 nmethod 7 0x0000000803944b10 code [0x0000000803944c80, 0x0000000803944e10] Event: 0.139 Thread 0x0000000803030800 8 3 java.lang.String::length (6 bytes) Event: 0.139 Thread 0x0000000803030800 nmethod 8 0x0000000803944750 code [0x00000008039448c0, 0x0000000803944a50] Event: 0.139 Thread 0x0000000803030800 9 1 java.lang.Object::<init> (1 bytes) Event: 0.140 Thread 0x0000000803030800 nmethod 9 0x000000080394ec50 code [0x000000080394eda0, 0x000000080394eed0] Event: 0.147 Thread 0x0000000803030800 10 1 java.lang.ref.Reference::get (5 bytes) Event: 0.147 Thread 0x0000000803030800 nmethod 10 0x000000080394e390 code [0x000000080394e4e0, 0x000000080394e610] GC Heap History (0 events): No events Deoptimization events (0 events): No events Internal exceptions (2 events): Event: 0.057 Thread 0x000000080302a800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x00000008bc187cc0) thrown at [/usr/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/prims/jni. Event: 0.057 Thread 0x000000080302a800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x00000008bc187fa8) thrown at [/usr/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/prims/jni.cpp, line 3987] Events (10 events): Event: 0.151 loading class sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl Event: 0.151 loading class sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl Event: 0.151 loading class sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl done Event: 0.151 loading class sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl done Event: 0.151 loading class java/util/HashMap$EntrySet Event: 0.151 loading class java/util/HashMap$EntrySet done Event: 0.152 loading class java/util/HashMap$EntryIterator Event: 0.152 loading class java/util/HashMap$HashIterator Event: 0.152 loading class java/util/HashMap$HashIterator done Event: 0.152 loading class java/util/HashMap$EntryIterator done Dynamic libraries: 0x0000000000400000 /usr/local/openjdk8/bin/java 0x0000000800821000 /usr/local/openjdk8/bin/../lib/amd64/jli/libjli.so 0x0000000800a2e000 /lib/libz.so.6 0x0000000800c45000 /lib/libthr.so.3 0x0000000800e6b000 /lib/libc.so.7 0x0000000801800000 /usr/local/openjdk8/jre/lib/amd64/server/libjvm.so 0x00000008025d9000 /lib/libm.so.5 0x0000000802803000 /usr/lib/libc++.so.1 0x0000000802ac2000 /lib/libcxxrt.so.1 0x0000000802ce0000 /lib/libgcc_s.so.1 0x0000000803200000 /usr/local/openjdk8/jre/lib/amd64/libverify.so 0x000000080340f000 /usr/local/openjdk8/jre/lib/amd64/libjava.so 0x000000080363a000 /usr/local/openjdk8/jre/lib/amd64/libzip.so 0x0000000800600000 /libexec/ld-elf.so.1 VM Arguments: java_command: test/TestUnsafe java_class_path (initial): . Launcher Type: SUN_STANDARD Environment Variables: JAVA_HOME=/usr/local/openjdk8 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/hwh/bin SHELL=/bin/csh DISPLAY=unix:0.0 HOSTTYPE=FreeBSD OSTYPE=FreeBSD MACHTYPE=x86_64 Signal Handlers: SIGSEGV: [libjvm.so+0x91e3d0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGBUS: [libjvm.so+0x91e3d0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGFPE: [libjvm.so+0x7c1fe0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGPIPE: [libjvm.so+0x7c1fe0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGXFSZ: [libjvm.so+0x7c1fe0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGILL: [libjvm.so+0x7c1fe0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGUSR1: SIG_DFL, sa_mask[0]=11111111011111110111111111111111, sa_flags=none SIGUSR2: [libjvm.so+0x7c2b50], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO SIGHUP: [libjvm.so+0x7c0530], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGINT: [libjvm.so+0x7c0530], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGTERM: [libjvm.so+0x7c0530], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGQUIT: [libjvm.so+0x7c0530], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO --------------- S Y S T E M --------------- OS:BSD uname:FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #104 r297311M: Sun Mar 27 18:16:04 CST 2016 root@mbp.gddsn.org.cn:/usr/obj/usr/src/sys/MACBOOK amd64 rlimit: STACK 524288k, CORE infinity, NPROC 19458, NOFILE 467388, AS infinity load average:0.37 0.46 0.56 CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 70 stepping 1, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2 Memory: 4k page, physical 16618520k(13655112k free), swap 0k(0k free) vm_info: OpenJDK 64-Bit Server VM (25.77-b03) for bsd-amd64 JRE (1.8.0_77-b03), built on Mar 28 2016 11:28:09 by "root" with gcc 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564) time: Sun Apr 3 16:10:21 2016 elapsed time: 0 seconds (0d 0h 0m 0s) public class TestUnsafe { public static void main(String[] args) throws Exception { java.lang.reflect.Field f = sun.misc.Unsafe.class .getDeclaredField("theUnsafe"); f.setAccessible(true); sun.misc.Unsafe unsafe = (sun.misc.Unsafe) f.get(null); long l = unsafe.allocateMemory(900L * 1024 * 1024); System.err.println(l); for(int i=0;i<10;i++) { System.err.printf("%08X\n", unsafe.getInt(null, l+i)); } } }home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16d32da1.11c9.153db464a52.Coremail.huanghwh>
