RFR: 8198564: Multiple crashes on SPARC

Erik Österlund erik.osterlund at oracle.com
Fri Feb 23 07:20:32 UTC 2018


Hi Roman,

Could you please fix the following error which was also introduced in 
the same patch?

  132 inline void typeArrayOopDesc::short_at_put(int which, jshort 
contents) {
  133   ptrdiff_t offset = element_offset<jshort>(T_BOOLEAN, which);
  134   HeapAccess<IN_HEAP_ARRAY>::store_at(as_oop(), offset, contents);
  135 }

The type should be T_SHORT and not T_BOOLEAN.

Thanks,
/Erik


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
>
> Would be good if somebody with access to SPARC could test it there,
> and if ok, push it?
>
> Thank you,
> Roman



More information about the hotspot-runtime-dev mailing list