RFR (S) 8129355 - [TESTBUG] FragmentMetaspaceSimple.java fails with ClassNotFoundException: test.Empty
Mikhailo Seledtsov
mikhailo.seledtsov at oracle.com
Thu Jul 2 21:36:58 UTC 2015
Hi Ioi,
Changes look good to me.
This is a great optimization idea for this testcase, to load class
from buffer instead of a file.
And thank you for thorough testing of the fix.
Misha
On 7/2/2015 1:58 PM, Ioi Lam wrote:
> Please review a small fix:
>
> http://cr.openjdk.java.net/~iklam/8129355-frag-metaspace-testbug-v1/
>
> Bug: [TESTBUG] runtime FragmentMetaspaceSimple.java fails with
> java.lang.ClassNotFoundException: test.Empty
>
> https://bugs.openjdk.java.net/browse/JDK-8129355
>
> Cause of failure:
>
> The test case is intended to stress the HotSpot metaspace allocation
> code, for 80 seconds,
> by repeatedly loading many instances of a simple class named
> "test.Empty".
>
> In the failing version, each class is loaded by a new
> URLClassLoader instance. So each time
> when a class is loaded, the file system is accessed to read the
> bytes of the class. So
> inadvertently, this test has also become a stress test for the
> file system.
>
> On some of our embedded test machines, the file system may be
> misbehaving and would fail
> to read the Empty.class file on rare occasions. This causes the
> test failure reported
> by 8129355.
>
> Summary of fix:
>
> My fix is to not to use URLClassLoader. Instead, read Empty.class
> only once, and store the
> contents into a byte buffer. This buffer will be used to define
> every instance of the Empty
> class.
>
> While this fix does not address the root cause of the failure
> (file system issue in some
> test machines), it will reduce the noise in our nightly tests.
>
> Also, now that the file system is accessed much less frequently,
> we can run many more iterations
> so we can stress the metaspace more, which is the real intent of
> this test.
>
> Now it runs for about 80 million iterations on a fast PC and 5
> million iterations on an
> embedded box.
>
> Tests:
>
> Since the new version causes more stress in metaspace, I wanted to
> make sure it doesn't cause
> any new failures related to metaspace. So I used the "RBT" tool to
> run the test 50 times
> on 8 platforms:
>
> linux-arm64, linux-i586, linux-x64, macosx-x64,
> solaris-sparcv9, solaris-x64, windows-i586, windows-x64
>
> for both product and fast debug builds. I also ran the test on
> 32-bit ARM for 12 hours (700+ runs)
> and saw no failure.
>
> Thanks
> - Ioi
More information about the hotspot-runtime-dev
mailing list