Looks like test RedefineLeakThrowable.java runs into OutOfMemoryError: Metaspace again, after JDK-8294960.
Example OOM :
Caused by: java.lang.OutOfMemoryError: Metaspace
at java.base/java.lang.ClassLoader.defineClass0(Native Method)
at java.base/java.lang.System$2.defineClass(System.java:2476)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2480)
at java.base/java.lang.invoke.InvokerBytecodeGenerator.loadMethod(InvokerBytecodeGenerator.java:255)
at java.base/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(InvokerBytecodeGenerator.java:533)
at java.base/java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:855)
at java.base/java.lang.invoke.LambdaForm.customize(LambdaForm.java:474)
at java.base/java.lang.invoke.MethodHandle$1.apply(MethodHandle.java:1858)
at java.base/java.lang.invoke.MethodHandle$1.apply(MethodHandle.java:1856)
at java.base/java.lang.invoke.MethodHandle.updateForm(MethodHandle.java:1878)
at java.base/java.lang.invoke.MethodHandle.customize(MethodHandle.java:1856)
at java.base/java.lang.invoke.MethodHandle.maybeCustomize(MethodHandle.java:1846)
at java.base/java.lang.invoke.Invokers.maybeCustomize(Invokers.java:632)
at java.base/java.lang.invoke.Invokers.checkCustomized(Invokers.java:626)
at java.base/java.lang.invoke.LambdaForm$MH/0x0000000680082800.invokeExact_MT(LambdaForm$MH)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.invokeImpl(DirectConstructorHandleAccessor.java:86)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:501)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:485)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:785)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:725)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1397)
at java.compiler@24-internal/javax.tools.ToolProvider.getSystemTool(ToolProvider.java:120)
at java.compiler@24-internal/javax.tools.ToolProvider.getSystemJavaCompiler(ToolProvider.java:62)
at jdk.test.lib.compiler.InMemoryJavaCompiler.getCompiler(InMemoryJavaCompiler.java:199)
at jdk.test.lib.compiler.InMemoryJavaCompiler.compile(InMemoryJavaCompiler.java:187)
at RedefineClassHelper.redefineClass(RedefineClassHelper.java:50)
at RedefineLeakThrowable.main(RedefineLeakThrowable.java:80)
at java.base/java.lang.invoke.LambdaForm$DMH/0x000000068008e800.invokeStatic(LambdaForm$DMH)
at java.base/java.lang.invoke.LambdaForm$MH/0x000000068008fc00.invoke(LambdaForm$MH)
at java.base/java.lang.invoke.LambdaForm$MH/0x0000000680090000.invokeExact_MT(LambdaForm$MH)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:154)
Example OOM :
Caused by: java.lang.OutOfMemoryError: Metaspace
at java.base/java.lang.ClassLoader.defineClass0(Native Method)
at java.base/java.lang.System$2.defineClass(System.java:2476)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2480)
at java.base/java.lang.invoke.InvokerBytecodeGenerator.loadMethod(InvokerBytecodeGenerator.java:255)
at java.base/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(InvokerBytecodeGenerator.java:533)
at java.base/java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:855)
at java.base/java.lang.invoke.LambdaForm.customize(LambdaForm.java:474)
at java.base/java.lang.invoke.MethodHandle$1.apply(MethodHandle.java:1858)
at java.base/java.lang.invoke.MethodHandle$1.apply(MethodHandle.java:1856)
at java.base/java.lang.invoke.MethodHandle.updateForm(MethodHandle.java:1878)
at java.base/java.lang.invoke.MethodHandle.customize(MethodHandle.java:1856)
at java.base/java.lang.invoke.MethodHandle.maybeCustomize(MethodHandle.java:1846)
at java.base/java.lang.invoke.Invokers.maybeCustomize(Invokers.java:632)
at java.base/java.lang.invoke.Invokers.checkCustomized(Invokers.java:626)
at java.base/java.lang.invoke.LambdaForm$MH/0x0000000680082800.invokeExact_MT(LambdaForm$MH)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.invokeImpl(DirectConstructorHandleAccessor.java:86)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:501)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:485)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:785)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:725)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1397)
at java.compiler@24-internal/javax.tools.ToolProvider.getSystemTool(ToolProvider.java:120)
at java.compiler@24-internal/javax.tools.ToolProvider.getSystemJavaCompiler(ToolProvider.java:62)
at jdk.test.lib.compiler.InMemoryJavaCompiler.getCompiler(InMemoryJavaCompiler.java:199)
at jdk.test.lib.compiler.InMemoryJavaCompiler.compile(InMemoryJavaCompiler.java:187)
at RedefineClassHelper.redefineClass(RedefineClassHelper.java:50)
at RedefineLeakThrowable.main(RedefineLeakThrowable.java:80)
at java.base/java.lang.invoke.LambdaForm$DMH/0x000000068008e800.invokeStatic(LambdaForm$DMH)
at java.base/java.lang.invoke.LambdaForm$MH/0x000000068008fc00.invoke(LambdaForm$MH)
at java.base/java.lang.invoke.LambdaForm$MH/0x0000000680090000.invokeExact_MT(LambdaForm$MH)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:154)
- relates to
-
JDK-8336666 Investigate why AIX needs more metaspace in test serviceability/jvmti/RedefineClasses/RedefineLeakThrowable.java
-
- Open
-
-
JDK-8294960 Convert java.base/java.lang.invoke package to use the Classfile API to generate lambdas and method handles
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/419cc462
-
Review(master) openjdk/jdk/20106