RFR: 8198564: Multiple crashes on SPARC

Volker Simonis volker.simonis at gmail.com
Fri Feb 23 08:49:37 UTC 2018


On Fri, Feb 23, 2018 at 8:35 AM, Roman Kennke <rkennke at redhat.com> wrote:

> Hmm, looks like missing include to typeArrayOop.inline.hpp to me.
> Cannot verify, because it builds for me.


You should build with "--disable-precompiled-headers" if you want to make
sure you get the includes right.


> 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