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

Roman Kennke rkennke at redhat.com
Thu Feb 22 18:49:39 UTC 2018


well, if you store a short (2-bytes) into an offset computed for
boolean (1-byte) you may store unaligned?

Should I take over bug JDK-8198564 (after all, it was my change) or is
somebody already on it?

Roman

On Thu, Feb 22, 2018 at 6:33 PM, Volker Simonis
<volker.simonis at gmail.com> wrote:
> 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