RFR: 8198564: Multiple crashes on SPARC

Roman Kennke rkennke at redhat.com
Fri Feb 23 11:01:30 UTC 2018


Hi Volker,
this is a good suggestion. Added here:

Differential:
http://cr.openjdk.java.net/~rkennke/8198564/webrev.03.diff/
Full:
http://cr.openjdk.java.net/~rkennke/8198564/webrev.03/

can't we make --disable-precompiled-header the default? I keep
forgetting that and screw myself up.

Roman

On Fri, Feb 23, 2018 at 11:29 AM, Volker Simonis
<volker.simonis at gmail.com> wrote:
> I also think that the change looks good.
>
> But while we're on it, I'd suggest to also check in the test that we
> only store '1' or '0' to boolean arrays. I.e. something like:
>
> o->bool_at_put(3, 255);
> ASSERT_EQ((jboolean)1, o->bool_at(3));
>
> Thanks,
> Volker
>
>
> On Fri, Feb 23, 2018 at 10:42 AM, Erik Österlund
> <erik.osterlund at oracle.com> wrote:
>> Hi Roman,
>>
>> Looks good.
>>
>> Thanks,
>> /Erik
>>
>> On 2018-02-23 08:35, 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/
>>> 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