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

Christian Tornqvist christian.tornqvist at oracle.com
Thu Feb 19 13:27:11 UTC 2015


Hi Dmitry,

This looks good. Could you do a quick run through JPRT to see how long this test takes to run? We might need to exclude it from JPRT if it takes more than 30s to run.

Thanks,
Christian

-----Original Message-----
From: Dmitry Dmitriev [mailto:dmitry.dmitriev at oracle.com] 
Sent: Thursday, February 19, 2015 4:05 AM
To: David Holmes; christian.tornqvist at oracle.com
Cc: hotspot-runtime-dev at openjdk.java.net
Subject: Re: RFR 8069291: [TESTBUG] Fibonacci test: OutOfMemoryError: unable to create native thread

Hello David,

Thank you for proposal. I was think about it, but finally decided to implement different fix. I leave the original thread creation logic, but exclude running this test on 32 bit JVM on Windows(via "@requires" jtreg tag).

New open webrev: 
http://cr.openjdk.java.net/~ctornqvi/webrev/8069291/webrev.01/
<http://cr.openjdk.java.net/%7Ectornqvi/webrev/8069291/webrev.01/>
JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8069291

Regards,
Dmitry

On 17.02.2015 2:24, David Holmes wrote:
> 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