SIGBUS in Access<1572864UL>::store_at<int> on Solaris/SPARC

Volker Simonis volker.simonis at gmail.com
Thu Feb 22 17:33:40 UTC 2018


On Thu, Feb 22, 2018 at 6:19 PM, Stefan Karlsson <stefan.karlsson at oracle.com
> wrote:

> This looks suspicious:
>
> +inline void typeArrayOopDesc::short_at_put(int which, jshort contents) {+  ptrdiff_t offset = element_offset<jshort>(T_BOOLEAN, which);+  HeapAccess<IN_HEAP_ARRAY>::store_at(as_oop(), offset, contents);+}
>
>
> T_BOOLEAN together with jshort ...
>
>
Yes, that seems like a copy/paste error (which should be fixed), but in the
end it is only used here as input for:

Universe::element_type_should_be_aligned(type)

and that one only differentiates between T_DOUBLE/T_LONG and all the other
basic types. So it's probably not the cause for this error.

Thanks,
Volker


> StefanK
>
>
>
> On 2018-02-22 18:12, Volker Simonis wrote:
>
> Hi,
>
> since the push of "8197999: Accessors in typeArrayOopDesc should use new
> Access API" we see crashes on Solaris/SPARC (see below). The disassembly at
> the crash instruction looks as follows:
>
> ldx  [ %fp + 0x7df ], %o4
> st  %i2, [ %o4 + %i1 ]
>
> O4=0x00000007b80e0468
> I1=0x0000000000000012
>
> which results in an unaligned access:
>
> siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr:
> 0x00000007b80e047a
>
> We are compiling with SS12u4 with updates from October 2017 (i.e. Sun C++
> 5.13 SunOS_sparc Patch 151845-28 2017/09/19) and running on Solaris 11.3.
> Which compilers are you using for compiling jdk-hs on Sun/SPARC?
>
> Do you have seen this as well or do you have any idea what might have
> caused this?
>
> Thank you and best regards,
> Volker
>
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  SIGBUS (0xa) at pc=0xfffffff67ffdb4d8, pid=321, tid=58934
> #
> # JRE version: OpenJDK Runtime Environment (11.0.1) (fastdebug build
> 11.0.0.1-internal+0-adhoc..jdk-hs)
> # Java VM: OpenJDK 64-Bit Server VM (fastdebug
> 11.0.0.1-internal+0-adhoc..jdk-hs, mixed mode, tiered, compressed oops, g1
> gc, solaris-sparc)
> # Problematic frame:
> # V  [libjvm.so+0xcdb4d8]  void
> Access<1572864UL>::store_at<int>(oop,long,__type_1)+0xd8
> #
> # Core dump will be written. Default location:
> /priv/jvmtests/output_sapjvm11_o_jdk-hs_dbgU_sun_64/jck_lang_vm_work/core
> or core.321
> #
> # If you would like to submit a bug report, please visit:
> #   http://bugreport.java.com/bugreport/crash.jsp
> #
>
> ---------------  S U M M A R Y ------------
>
> Command Line: -Djava.awt.headless=true -Xms128m -Xmx288m
> -XX:MaxJavaStackTraceDepth=1024 -Xverify:all -XX:+FailOverToOldVerifier
> -Xverify:all -agentlib:jckjvmti=same -Djdk.xml.maxXMLNameLimit=4000
> -Djava.net.preferIPv4Stack=true
> -Djava.security.auth.policy=/sapmnt/hs0131/a/sapjvm_dev/jck/jck11/JCK-runtime-11/lib/jck.auth.policy
> -Djava.security.auth.login.config=/sapmnt/hs0131/a/sapjvm_dev/jck/jck11/JCK-runtime-11/lib/jck.auth.login.config
> -Djava.security.policy=/sapmnt/hs0131/a/sapjvm_dev/jck/jck11/JCK-runtime-11/lib/jck.policy
> -Djava.io.tmpdir=/priv/jvmtests/output_sapjvm11_o_jdk-hs_dbgU_sun_64/jck_lang_vm_work/tempdir
> -Djavatest.security.allowPropertiesAccess=true
> -Djava.util.prefs.userRoot=/priv/jvmtests/output_sapjvm11_o_jdk-hs_dbgU_sun_64/jck_lang_vm_work/tempdir
> -Djava.rmi.activation.port=6284 com.sun.javatest.agent.AgentMain -active
> -activeHost localhost -activePort 6584
>
> Host: us04z2, Sparcv9 64 bit 2998 MHz, 128 cores, 100G, Oracle Solaris 11.3
> SPARC
> Time: Thu Feb 22 09:24:06 2018 CET elapsed time: 2872 seconds (0d 0h 47m
> 52s)
>
> ---------------  T H R E A D  ---------------
>
> Current thread (0x0000000108bca000):  JavaThread "Thread-41287"
> [_thread_in_vm, id=58934, stack(0xffffffff3f900000,0xffffffff3fa00000)]
>
> Stack: [0xffffffff3f900000,0xffffffff3fa00000],  sp=0xffffffff3f9fd340,
>  free space=1012k
> Native frames: (J=compiled Java code, A=aot compiled Java code,
> j=interpreted, Vv=VM code, C=native code)
> V  [libjvm.so+0xcdb4d8]  void
> Access<1572864UL>::store_at<int>(oop,long,__type_1)+0xd8
> V  [libjvm.so+0x1bd2900]  void
> Reflection::array_set(jvalue*,arrayOop,int,BasicType,Thread*)+0x300
> V  [libjvm.so+0x11cf464]  JVM_SetArrayElement+0x6e4
> C  [libjava.so+0x147e8]  Java_java_lang_reflect_Array_set+0x18
> j
>  java.lang.reflect.Array.set(Ljava/lang/Object;ILjava/lang/Object;)V+-1473468376java.base at 11.0.0.1-internal
> j  java.lang.reflect.Array.set(Ljava/lang/Object;ILjava/lang/Object;)V+0java.base at 11.0.0.1-internal
> j
>  javasoft.sqe.tests.vm.concepts.execution.execution080.execution08001.execution08001.run([Ljava/lang/String;Ljava/io/PrintStream;)I+617
> v  ~StubRoutines::call_stub
> V  [libjvm.so+0x108989c]  void JavaCalls::call_helper(JavaValue*,const
> methodHandle&,JavaCallArguments*,Thread*)+0x5bc
> V  [libjvm.so+0x1be0410]  oop invoke(InstanceKlass*,const
> methodHandle&,Handle,bool,objArrayHandle,BasicType,objArrayHandle,bool,Thread*)+0x2c60
> V  [libjvm.so+0x1be1084]  oop
> Reflection::invoke_method(oop,Handle,objArrayHandle,Thread*)+0x7b4
> V  [libjvm.so+0x11d2868]  JVM_InvokeMethod+0x5d8
> C  [libjava.so+0x16458]
>  Java_jdk_internal_reflect_NativeMethodAccessorImpl_invoke0+0x18
> J 1506
>  jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (0 bytes) @ 0xffffffff6f8ad338
> [0xffffffff6f8ad040+0x00000000000002f8]
> J 6474 c2
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (104 bytes) @ 0xffffffff6fd959c4
> [0xffffffff6fd95960+0x0000000000000064]
> J 5773 c2
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (10 bytes) @ 0xffffffff6f83e670
> [0xffffffff6f83e620+0x0000000000000050]
> J 4866 c1
> com.sun.jck.lib.ExecJCKTestSameJVMCmd$SimpleTest.run([Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;)Lcom/sun/javatest/Status;
> (405 bytes) @ 0xffffffff696dfee4 [0xffffffff696df0a0+0x0000000000000e44]
> J 5654 c1
> com.sun.jck.lib.ExecJCKTestSameJVMCmd.execute(Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;I)Lcom/sun/javatest/Status;
> (397 bytes) @ 0xffffffff68d4dd40 [0xffffffff68d4aea0+0x0000000000002ea0]
> J 6242 c2
> com.sun.jck.lib.ExecJCKTestSameJVMCmd.run([Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;)Lcom/sun/javatest/Status;
> (1022 bytes) @ 0xffffffff6fef30b0 [0xffffffff6fef0000+0x00000000000030b0]
> J 1689 c1
> com.sun.jck.lib.ExecInSeparateThreadCmd$StatusCallable.call()Ljava/lang/Object;
> (5 bytes) @ 0xffffffff68d98114 [0xffffffff68d97f00+0x0000000000000214]
> J 6097 c1 java.util.concurrent.FutureTask.run()V java.base at 11.0.0.1-internal
> (123 bytes) @ 0xffffffff68e5f900 [0xffffffff68e5ee40+0x0000000000000ac0]
> J 5653 c2 java.lang.Thread.run()V java.base at 11.0.0.1-internal (17 bytes) @
> 0xffffffff6f851b78 [0xffffffff6f851b20+0x0000000000000058]
> v  ~StubRoutines::call_stub
> V  [libjvm.so+0x108989c]  void JavaCalls::call_helper(JavaValue*,const
> methodHandle&,JavaCallArguments*,Thread*)+0x5bc
> V  [libjvm.so+0x1088220]  void
> JavaCalls::call_virtual(JavaValue*,Klass*,Symbol*,Symbol*,JavaCallArguments*,Thread*)+0x1e0
> V  [libjvm.so+0x1088328]  void
> JavaCalls::call_virtual(JavaValue*,Handle,Klass*,Symbol*,Symbol*,Thread*)+0xb8
> V  [libjvm.so+0x11c5140]  void thread_entry(JavaThread*,Thread*)+0x1e0
> V  [libjvm.so+0x1de56e4]  void JavaThread::thread_main_inner()+0x2e4
> V  [libjvm.so+0x1de53d0]  void JavaThread::run()+0x350
> V  [libjvm.so+0x1aa4ff4]  thread_native_entry+0x2e4
>
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> j  java.lang.reflect.Array.set(Ljava/lang/Object;ILjava/lang/Object;)V+0java.base at 11.0.0.1-internal
> j
>  javasoft.sqe.tests.vm.concepts.execution.execution080.execution08001.execution08001.run([Ljava/lang/String;Ljava/io/PrintStream;)I+617
> v  ~StubRoutines::call_stub
> J 1506
>  jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (0 bytes) @ 0xffffffff6f8ad0ec
> [0xffffffff6f8ad040+0x00000000000000ac]
> J 6474 c2
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (104 bytes) @ 0xffffffff6fd959c4
> [0xffffffff6fd95960+0x0000000000000064]
> J 5773 c2
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java.base at 11.0.0.1-internal (10 bytes) @ 0xffffffff6f83e670
> [0xffffffff6f83e620+0x0000000000000050]
> J 4866 c1
> com.sun.jck.lib.ExecJCKTestSameJVMCmd$SimpleTest.run([Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;)Lcom/sun/javatest/Status;
> (405 bytes) @ 0xffffffff696dfee4 [0xffffffff696df0a0+0x0000000000000e44]
> J 5654 c1
> com.sun.jck.lib.ExecJCKTestSameJVMCmd.execute(Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;I)Lcom/sun/javatest/Status;
> (397 bytes) @ 0xffffffff68d4dd40 [0xffffffff68d4aea0+0x0000000000002ea0]
> J 6242 c2
> com.sun.jck.lib.ExecJCKTestSameJVMCmd.run([Ljava/lang/String;Ljava/io/PrintWriter;Ljava/io/PrintWriter;)Lcom/sun/javatest/Status;
> (1022 bytes) @ 0xffffffff6fef30b0 [0xffffffff6fef0000+0x00000000000030b0]
> J 1689 c1
> com.sun.jck.lib.ExecInSeparateThreadCmd$StatusCallable.call()Ljava/lang/Object;
> (5 bytes) @ 0xffffffff68d98114 [0xffffffff68d97f00+0x0000000000000214]
> J 6097 c1 java.util.concurrent.FutureTask.run()V java.base at 11.0.0.1-internal
> (123 bytes) @ 0xffffffff68e5f900 [0xffffffff68e5ee40+0x0000000000000ac0]
> J 5653 c2 java.lang.Thread.run()V java.base at 11.0.0.1-internal (17 bytes) @
> 0xffffffff6f851b78 [0xffffffff6f851b20+0x0000000000000058]
> v  ~StubRoutines::call_stub
>
> siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr:
> 0x00000007b80e047a
>
> Register to memory mapping:
>
> G1=0x000000000197000c is an unknown value
> G2=0xfffffffffffffd48 is an unknown value
> G3=0x00000000c0100400 is an unknown value
> G4=0x0 is NULL
> G5=0x00000007b80e0468 is pointing into object: 0x00000007b80635b0
>
> [error occurred during error reporting (printing register info), id 0xa]
>
> Registers:
>  G1=0x000000000197000c G2=0xfffffffffffffd48 G3=0x00000000c0100400
> G4=0x0000000000000000
>  G5=0x00000007b80e0468 G6=0x0000000000000000 G7=0xffffffff5441a240
> Y=0x0000000000000000
>  O0=0xffffffff3f9fd408 O1=0x0000000000091b61 O2=0x0000000000091800
> O3=0xfffffff68194b410
>  O4=0x00000007b80e0468 O5=0x0000000000000010 O6=0xffffffff3f9fcb41
> O7=0x00000007b80e0468
>  L0=0x00000007b80e0468 L1=0x00000007b80e0468 L2=0xfffffff68194b410
> L3=0x0000000000000010
>  L4=0x0000000000000000 L5=0x00000007b80e0468 L6=0xfffffff68194b410
> L7=0x0000000000092434
>  I0=0xffffffff3f9fd558 I1=0x0000000000000012 I2=0x0000000000000000
> I3=0xfffffff6819dd844
>  I4=0x0000000000000010 I5=0x0000000000092400 I6=0xffffffff3f9fcc11
> I7=0xfffffff680ed28f8
>  PC=0xfffffff67ffdb4d8 nPC=0xfffffff67ffdb4dc
>
>
> Top of Stack: (sp=0xffffffff3f9fd340)
> 0xffffffff3f9fd340:   00000007b80e0468 00000007b80e0468
> 0xffffffff3f9fd350:   fffffff68194b410 0000000000000010
> 0xffffffff3f9fd360:   0000000000000000 00000007b80e0468
> 0xffffffff3f9fd370:   fffffff68194b410 0000000000092434
> 0xffffffff3f9fd380:   ffffffff3f9fd558 0000000000000012
> 0xffffffff3f9fd390:   0000000000000000 fffffff6819dd844
> 0xffffffff3f9fd3a0:   0000000000000010 0000000000092400
> 0xffffffff3f9fd3b0:   ffffffff3f9fcc11 fffffff680ed28f8
> 0xffffffff3f9fd3c0:   ffffffff3f9fcc61 fffffff680af1514
> 0xffffffff3f9fd3d0:   fffffff6819c5d68 0000000100107880
> 0xffffffff3f9fd3e0:   00000003b80e00d0 fffffff6819c5d68
> 0xffffffff3f9fd3f0:   00000007b80e0468 00000007b80e0468
> 0xffffffff3f9fd400:   00000007b80e0468 00000007b80e0468
> 0xffffffff3f9fd410:   fffffff68194b410 fffffff6819dd844
> 0xffffffff3f9fd420:   00000000000002dc 0000000000000000
> 0xffffffff3f9fd430:   ffffffff3f9fd558 00000007b80e0468
>
> Instructions: (pc=0xfffffff67ffdb4d8)
> 0xfffffff67ffdb4b8:   40 36 e0 42 90 07 a7 df 10 80 00 06 d8 5f a7 df
> 0xfffffff67ffdb4c8:   e4 77 a7 e7 e6 5f a7 e7 e6 77 a7 df d8 5f a7 df
> 0xfffffff67ffdb4d8:   f4 23 00 19 d6 0e e0 00 80 a2 e0 00 02 40 00 16
> 0xfffffff67ffdb4e8:   01 00 00 00 40 36 e0 89 90 07 a7 df da 0e e0 00
>
>
>


More information about the hotspot-dev mailing list