RFR: 8198564: Multiple crashes on SPARC

David Holmes david.holmes at oracle.com
Fri Feb 23 11:32:04 UTC 2018


Test run successful.

David

On 23/02/2018 7:38 PM, David Holmes wrote:
> On 23/02/2018 5:35 PM, Roman Kennke wrote:
>> Hmm, looks like missing include to typeArrayOop.inline.hpp to me.
>> Cannot verify, because it builds for me. Can you try the following? It
>> also fixes the T_BOOLEAN -> T_SHORT copy+paste mistake from the same
>> original patch.
>>
>> Differential:
>> http://cr.openjdk.java.net/~rkennke/8198564/webrev.02.diff/
> 
> Resubmitting.
> 
> David
> 
>> Full:
>> http://cr.openjdk.java.net/~rkennke/8198564/webrev.02/
>>
>> Roman
>>
>>
>>
>> On Fri, Feb 23, 2018 at 8:06 AM, David Holmes 
>> <david.holmes at oracle.com> wrote:
>>> Testing not at all happy with the gtest:
>>>
>>> test/hotspot/gtest/oops/test_typeArrayOop.cpp:43: undefined reference to
>>> `typeArrayOopDesc::bool_at(int) const'
>>>
>>> This is linux-x64 but was on on linux-x64-debug. All other platforms 
>>> failed
>>> except Windows.
>>>
>>> David
>>> -----
>>>
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/objs/test_typeArrayOop.o: 
>>>
>>> In function `typeArrayOopDesc_bool_at_put_test_vm_Test::TestBody()':
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:43: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:44: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:45: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:46: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:47: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/objs/test_typeArrayOop.o:/scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:48: 
>>>
>>> more undefined references to `typeArrayOopDesc::bool_at(int) const' 
>>> follow
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/objs/test_typeArrayOop.o: 
>>>
>>> In function `typeArrayOopDesc_bool_at_put_test_vm_Test::TestBody()':
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:52: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at_put(int, unsigned 
>>> char)'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:53: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at_put(int, unsigned 
>>> char)'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:54: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at_put(int, unsigned 
>>> char)'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:55: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at_put(int, unsigned 
>>> char)'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:57: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:58: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:59: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:60: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:61: 
>>>
>>> undefined reference to `typeArrayOopDesc::bool_at(int) const'
>>> jib >
>>> /scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/objs/test_typeArrayOop.o:/scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/open/test/hotspot/gtest/oops/test_typeArrayOop.cpp:62: 
>>>
>>> more undefined references to `typeArrayOopDesc::bool_at(int) const' 
>>> follow
>>> jib > collect2: error: ld returned 1 exit status
>>> jib > make[3]: ***
>>> [/scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/libjvm.so] 
>>>
>>> Error 1
>>> jib > lib/CompileGtest.gmk:65: recipe for target
>>> '/scratch/opt/mach5/mesos/work_dir/slaves/9190d864-6621-4810-ba08-d8d8c75ba674-S640/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fae00af9-2147-45bf-864e-34d221d02d20/runs/e790f2be-503e-4692-ac72-e0671344e9e0/workspace/build/linux-x64/hotspot/variant-server/libjvm/gtest/libjvm.so' 
>>>
>>> failed
>>>
>>>
>>> On 23/02/2018 2:31 PM, David Holmes wrote:
>>>>
>>>> I'm putting it through same testing as CI - which of course should have
>>>> been done before this was pushed.
>>>>
>>>> Will advise on result.
>>>>
>>>> David
>>>>
>>>> On 23/02/2018 8:03 AM, Stefan Karlsson wrote:
>>>>>
>>>>> On 2018-02-22 22:26, Roman Kennke wrote:
>>>>>>
>>>>>> My change to typeArrayOop.hpp
>>>>>> (https://bugs.openjdk.java.net/browse/JDK-8197999) seems to have
>>>>>> caused some regressions, esp. on SPARC. The issue is that I'm
>>>>>> accidentally calling Access::store_at() with a type of jint and thus
>>>>>> generates a memory access wider than a jboolean. It seems to cause
>>>>>> SIGBUS on SPARC, but may also simply override adjacent array 
>>>>>> elements.
>>>>>>
>>>>>> With some help by Stefan Karlsson, I made a little gtest (ok, he 
>>>>>> wrote
>>>>>> most of it, I only modified it to actually fail without the bugfix).
>>>>>>
>>>>>> http://cr.openjdk.java.net/~rkennke/8198564/webrev.01
>>>>>
>>>>>
>>>>> Looks good.
>>>>>
>>>>> The test is a bit hacky and probably uses undefined behavior, so 
>>>>> I'm not
>>>>> sure it will hold over time. But right now it manages to reproduce 
>>>>> the bug,
>>>>> which is good.
>>>>>
>>>>>> Would be good if somebody with access to SPARC could test it there,
>>>>>> and if ok, push it?
>>>>>
>>>>>
>>>>> I won't have time to run this through our test machinery today. Anyone
>>>>> else?
>>>>>
>>>>> Thanks,
>>>>> StefanK
>>>>>>
>>>>>>
>>>>>> Thank you,
>>>>>> Roman
>>>>>
>>>>>
>>>>>
>>>


More information about the hotspot-runtime-dev mailing list