I have a local reproducer for 
[JDK-8360595](https://bugs.openjdk.org/browse/JDK-8360595), and I only now 
understood why it crashed badly, without producing a proper error. This is 
because you are not allowed to pass `oop`-s to C++ methods. Because with 
checked oops, `oop` is really a wrapper class, not a pointer. We should be 
passing `oopDesc*`.

I also extended the platform filter for the test, so reproducer can work on my 
x86 machines, and it now crashes more reliably:


$  CONF=linux-x86_64-server-fastdebug make images test 
TEST=java/foreign/TestUpcallStress.java 
TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC 
-XX:-ExitOnOutOfMemoryError"
...
[12:37:47.635] test TestUpcallStress.testUpcallsStress(663, "f1_V_SD_DID", 
VOID, [STRUCT, DOUBLE], [DOUBLE, INT, DOUBLE]): success [25ms]
Uncaught exception:
java.lang.OutOfMemoryError: Java heap space
<<no stack trace available>>


Additional testing:
 - [x] Linux x86_64 server fastdebug, reproducer no longer cryptically

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

-------------

Commit messages:
 - Fix

Changes: https://git.openjdk.org/jdk/pull/31151/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31151&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8371949
  Stats: 3 lines in 3 files changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/31151.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31151/head:pull/31151

PR: https://git.openjdk.org/jdk/pull/31151

Reply via email to