RFR 8252249: nsk/stress/stack/stack016.java fails with "Error: TEST_BUG: trickyRecursion() must throw an error anyway!"
David Holmes
david.holmes at oracle.com
Wed Sep 2 06:26:50 UTC 2020
Hi Harold,
On 2/09/2020 5:02 am, Harold Seigel wrote:
> Hi,
>
> Please review this change to hotspot test
> vmTestbase/nsk/stress/stack/stack016.java. The test calls a recursive
> method and keeps track of the number of repetitions needed to cause an
> exception. It then runs a bunch of threads that call the recursive
> method for a multiple of the repetition number, expecting each of them
> to get a StackOverflowError or OutOfMemoryError exception. Occasionally,
> the test fails because one of the threads does not throw an exception.
>
> This change tries to fix this in two ways. One, by making sure that the
> thread used to determine the number of repetitions gets a
> StackOverflowError or OutOfMemoryError exception, and not some other
> unexpected exception.
That's a good improvement, though other exceptions seem unlikely - have
you actually observed any unexpected exceptions?
> The other way is to run the test twice, once with
> -Xcomp and once with -Xint, to ensure that thread stack consumption
> doesn't vary because the original thread called an interpreted method
> and a subsequent thread called a compiled method.
Right - running interpreted would give a different maximum recursion
depth from running under the JIT, and when we bumped up the stack depth
we would have run far more iterations and so JIT'd more code - thus
breaking the test. So forcing fully interpreted or fully compiled seems
a good way to stabilise things.
But I would suggest that you keep the required condition
vm.compMode != "Xcomp"
to minimise the runs of this test. When executed as part of an Xcomp run
both @run's will behave exactly the same way (Xcomp) - and that is the
same as the second @run in a non-Xcomp run. So no point running the
Xcomp version three times.
Thanks,
David
-----
>
> Open Webrev:
> http://cr.openjdk.java.net/~hseigel/bug_8252249.stack/webrev/index.html
>
> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8252249
>
> The modified test was tested on Mac OS, Linux x64, and Windows.
>
> Thanks, Harold
>
More information about the hotspot-runtime-dev
mailing list