-
Bug
-
Resolution: Fixed
-
P4
-
11, 17
-
b07
-
generic
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8276053 | 11.0.15-oracle | Kevin Walls | P4 | Resolved | Fixed | b01 |
JDK-8260436 | 11.0.11 | Severin Gehwolf | P4 | Resolved | Fixed | b02 |
$ cat MbeanServerTest.java
public class MbeanServerTest {
public static void main(String[] args) {
System.out.println(java.lang.management.ManagementFactory.getPlatformMBeanServer());
}
}
$ ./build/linux-x86_64-server-release/images/jdk/bin/javac MbeanServerTest.java
$ ./build/linux-x86_64-server-release/images/jdk/bin/java -Xcheck:jni MbeanServerTest
WARNING: JNI local refs: 33, exceeds capacity: 32
at com.sun.management.internal.DiagnosticCommandImpl.getDiagnosticCommandInfo(jdk.management@17-internal/Native Method)
at com.sun.management.internal.DiagnosticCommandImpl.getMBeanInfo(jdk.management@17-internal/DiagnosticCommandImpl.java:196)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getNewMBeanClassName(java.management@17-internal/DefaultMBeanServerInterceptor.java:329)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(java.management@17-internal/DefaultMBeanServerInterceptor.java:315)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(java.management@17-internal/JmxMBeanServer.java:522)
at java.lang.management.ManagementFactory.lambda$addMXBean$7(java.management@17-internal/ManagementFactory.java:902)
at java.lang.management.ManagementFactory$$Lambda$22/0x0000000801057180.run(java.management@17-internal/Unknown Source)
at java.security.AccessController.executePrivileged(java.base@17-internal/AccessController.java:784)
at java.security.AccessController.doPrivileged(java.base@17-internal/AccessController.java:554)
at java.lang.management.ManagementFactory.addMXBean(java.management@17-internal/ManagementFactory.java:892)
at java.lang.management.ManagementFactory.lambda$getPlatformMBeanServer$1(java.management@17-internal/ManagementFactory.java:488)
at java.lang.management.ManagementFactory$$Lambda$21/0x00000008010569f8.accept(java.management@17-internal/Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(java.base@17-internal/ForEachOps.java:183)
at java.util.Collections$2.tryAdvance(java.base@17-internal/Collections.java:4820)
at java.util.Collections$2.forEachRemaining(java.base@17-internal/Collections.java:4828)
at java.util.stream.ReferencePipeline$Head.forEach(java.base@17-internal/ReferencePipeline.java:762)
at java.util.stream.ReferencePipeline$7$1.accept(java.base@17-internal/ReferencePipeline.java:276)
at java.util.stream.ReferencePipeline$2$1.accept(java.base@17-internal/ReferencePipeline.java:179)
at java.util.HashMap$ValueSpliterator.forEachRemaining(java.base@17-internal/HashMap.java:1766)
at java.util.stream.AbstractPipeline.copyInto(java.base@17-internal/AbstractPipeline.java:484)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@17-internal/AbstractPipeline.java:474)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(java.base@17-internal/ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(java.base@17-internal/ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(java.base@17-internal/AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(java.base@17-internal/ReferencePipeline.java:596)
at java.lang.management.ManagementFactory.getPlatformMBeanServer(java.management@17-internal/ManagementFactory.java:488)
- locked <0x000000062f019688> (a java.lang.Class for java.lang.management.ManagementFactory)
at MbeanServerTest.main(MbeanServerTest.java:3)
Looks like getDiagnosticCommandArgumentInfoArray() in src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c is leaking references.
public class MbeanServerTest {
public static void main(String[] args) {
System.out.println(java.lang.management.ManagementFactory.getPlatformMBeanServer());
}
}
$ ./build/linux-x86_64-server-release/images/jdk/bin/javac MbeanServerTest.java
$ ./build/linux-x86_64-server-release/images/jdk/bin/java -Xcheck:jni MbeanServerTest
WARNING: JNI local refs: 33, exceeds capacity: 32
at com.sun.management.internal.DiagnosticCommandImpl.getDiagnosticCommandInfo(jdk.management@17-internal/Native Method)
at com.sun.management.internal.DiagnosticCommandImpl.getMBeanInfo(jdk.management@17-internal/DiagnosticCommandImpl.java:196)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getNewMBeanClassName(java.management@17-internal/DefaultMBeanServerInterceptor.java:329)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(java.management@17-internal/DefaultMBeanServerInterceptor.java:315)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(java.management@17-internal/JmxMBeanServer.java:522)
at java.lang.management.ManagementFactory.lambda$addMXBean$7(java.management@17-internal/ManagementFactory.java:902)
at java.lang.management.ManagementFactory$$Lambda$22/0x0000000801057180.run(java.management@17-internal/Unknown Source)
at java.security.AccessController.executePrivileged(java.base@17-internal/AccessController.java:784)
at java.security.AccessController.doPrivileged(java.base@17-internal/AccessController.java:554)
at java.lang.management.ManagementFactory.addMXBean(java.management@17-internal/ManagementFactory.java:892)
at java.lang.management.ManagementFactory.lambda$getPlatformMBeanServer$1(java.management@17-internal/ManagementFactory.java:488)
at java.lang.management.ManagementFactory$$Lambda$21/0x00000008010569f8.accept(java.management@17-internal/Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(java.base@17-internal/ForEachOps.java:183)
at java.util.Collections$2.tryAdvance(java.base@17-internal/Collections.java:4820)
at java.util.Collections$2.forEachRemaining(java.base@17-internal/Collections.java:4828)
at java.util.stream.ReferencePipeline$Head.forEach(java.base@17-internal/ReferencePipeline.java:762)
at java.util.stream.ReferencePipeline$7$1.accept(java.base@17-internal/ReferencePipeline.java:276)
at java.util.stream.ReferencePipeline$2$1.accept(java.base@17-internal/ReferencePipeline.java:179)
at java.util.HashMap$ValueSpliterator.forEachRemaining(java.base@17-internal/HashMap.java:1766)
at java.util.stream.AbstractPipeline.copyInto(java.base@17-internal/AbstractPipeline.java:484)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@17-internal/AbstractPipeline.java:474)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(java.base@17-internal/ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(java.base@17-internal/ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(java.base@17-internal/AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(java.base@17-internal/ReferencePipeline.java:596)
at java.lang.management.ManagementFactory.getPlatformMBeanServer(java.management@17-internal/ManagementFactory.java:488)
- locked <0x000000062f019688> (a java.lang.Class for java.lang.management.ManagementFactory)
at MbeanServerTest.main(MbeanServerTest.java:3)
Looks like getDiagnosticCommandArgumentInfoArray() in src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c is leaking references.
- backported by
-
JDK-8260436 JNI local refs exceed capacity getDiagnosticCommandInfo
- Resolved
-
JDK-8276053 JNI local refs exceed capacity getDiagnosticCommandInfo
- Resolved
- relates to
-
JDK-8260378 [TESTBUG] DcmdMBeanTestCheckJni.java reports false positive
- Resolved