[OpenJDK 2D-Dev]  RFR JDK-8232634: [TEST_BUG] ICMColorDataTest runs for a long time
alexey.ivanov at oracle.com
Mon Oct 21 19:11:01 UTC 2019
Please review the fix for the test:
The test exhausts native memory so that a memory allocation fails. This
situation is quite easy to achieve with 32 bit processes but it's
somewhat impossible with 64 bit processes. With 64 bit JREs, the test
could take a very long time to run: up to 80 minutes on Windows in the
most extreme cases. It's a lot of time!
I was running this test in different configurations and found that the
expected exception is thrown at 20-25 thousand iterations (32-bit). It
usually takes 3-4 minutes.
If a Garbage Collector cycle is triggered, Java objects (BufferedImage)
are disposed of, and native resources are freed. If it happens, the test
will not throw the expected exceptions. When using 64-bit JRE, a GC is
triggered after 65 thousand iterations, which takes about 30-40 minutes.
I had to use SerialGC because the default G1 reclaims Java objects too
fast, so that the error condition is never reached.
In the fix, I reduced the number of iterations to 30,000 which covers
the case where the problem is reproducible. The execution time reduced
to about 5 minutes. I set the new timeout for the test to 10 minutes
(600 seconds) which should be enough even for slower hardware.
More information about the 2d-dev