RFR 8069291: [TESTBUG] Fibonacci test: OutOfMemoryError: unable to create native thread

David Holmes david.holmes at oracle.com
Mon Feb 16 23:24:21 UTC 2015


On 17/02/2015 7:31 AM, Dmitry Dmitriev wrote:
> Hi Christian,
>
> With this fix the N threads will be alive at the same time for N Fibonacci number. E.g. for 15th Fibonacci number at the same time will be 15 threads alive. Test takes small amount of time to run, less than a minute.
>
> But now I understand that for finding possible thread corruption it will be better to keep previous logic for creation threads. But in this case we need to limit maximum Fibonacci number for 32 bit systems to lower value, e.g. to 13. In this case only 751 threads will be created. For example 1973 threads are created for 15th Fibonacci number.

So the usefulness of this seems to be as a stress test - in which case 
scaling it back renders it less useful.

I'm still inclined to treat the OOME as a transient error that may 
affect some systems. Have the test not fail when that occurs if you want 
to reduce testing noise.

David

> Thanks,
> Dmitry
>
> ----- Original Message -----
> From: christian.tornqvist at oracle.com
> To: dmitry.dmitriev at oracle.com, hotspot-runtime-dev at openjdk.java.net
> Sent: Tuesday, 17 February, 2015 12:02:44 AM GMT +03:00 Iraq
> Subject: RE: RFR 8069291: [TESTBUG] Fibonacci test: OutOfMemoryError: unable to	create native thread
>
> Hi Dmitry,
>
> How many threads will usually be alive at the same time? How long does the test usually take to run?
>
> Thanks,
> Christian
>
> -----Original Message-----
> From: hotspot-runtime-dev [mailto:hotspot-runtime-dev-bounces at openjdk.java.net] On Behalf Of Dmitry Dmitriev
> Sent: Friday, February 13, 2015 3:12 PM
> To: hotspot-runtime-dev at openjdk.java.net
> Subject: RFR 8069291: [TESTBUG] Fibonacci test: OutOfMemoryError: unable to create native thread
>
> Hello!
>
>
>
> Please review this fix for JDK-8069291. Unfortunately, the bug report isn't visible outside Oracle.
>
>
> This test calculates Fibonacci numbers "recursively" via threads and compares the result with the classical calculation. I correct out-of-memory error which sometimes occurred on 32 bit systems. I changed how the recursive threads are created. Now left & right branches creates separately and thread wait one branch to finish before creating thread for another branch.
>
>
> As part of the fixing the OOM issue I am moving the test to OpenJDK.
>
>
> Open webrev: http://cr.openjdk.java.net/~ctornqvi/webrev/8069291/webrev.00/
>
>
> JBS bug: https://bugs.openjdk.java.net/browse/JDK-8069291
>
>
> I run this test on all main platforms; Linux x64, Linux x32, Win x32, Win x64, MacOS x64, Solaris x64, Solaris Sparc64
>
>
> Thanks,
> Dmitry
>
>


More information about the hotspot-runtime-dev mailing list