[lworld] RFR: 8258412: [lworld] TestArrays::test73 fails due to unexpected result

Tobias Hartmann thartmann at openjdk.java.net
Tue Dec 15 17:28:19 UTC 2020

`TestArrays::test73` spuriously failed (only) with a product build. I finally figured out that with a product build the `-XX:-MonomorphicArrayCheck` flag specified by the test is ignored which is required to trigger the problem. Instead of adding yet another scenario to our tests, I've added a `PreferCommandLineFlags` option to the framework to allow overwriting scenario flags by flags set via the command line. I'll use it for testing some more flag combinations in the CI.

The root cause of the issue is that for a flat array store the `MonomorphicArrayCheck` optimization updates the array type to the exact (flat) type but does not update the corresponding element type. As a result, `elemtype->inline_klass()->is_empty()` returns true in product leading to incorrect execution and hits an assert in debug because `elemtype` is general `java.lang.Object`.

I've also fixed another issue in `Parse::array_store_check()` and added some asserts to catch similar issues earlier in the future.



Commit messages:
 - 8258412: [lworld] TestArrays::test73 fails due to unexpected result

Changes: https://git.openjdk.java.net/valhalla/pull/303/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=303&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8258412
  Stats: 80 lines in 6 files changed: 40 ins; 30 del; 10 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/303.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/303/head:pull/303

PR: https://git.openjdk.java.net/valhalla/pull/303

More information about the valhalla-dev mailing list