Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8205235 | 11.0.1 | Chris Plummer | P4 | Resolved | Fixed | team |
In writing a new JDI test I noticed in the output:
JVM version:11-internal
JDI version: 9.0
JVM description: Java Debug Interface (Reference Implementation) version 9.0
Java Debug Wire Protocol (Reference Implementation) version 9.0
JVM Debug Interface version 11.0
JVM version 11-internal (Java HotSpot(TM) 64-Bit Server VM, mixed mode, aot, sharing)
This last line claims that AOT and CDS are being used!
I augmented the JDI code to show the actual command-line and to add -showversion. Here's the command line:
LAUNCHING VM: /export/users/dh198349/valhalla/repos/valhalla-dev/build/linux-x64-debug/images/jdk/bin/java -classpath /export/users/dh198349/valhalla/repos/valhalla-dev/open/test/jdk/JTwork/classes/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.d -Xdebug -showversion -Xrunjdwp:transport=dt_socket,address=bussund0416:48834,suspend=y Target
and here's the result of -showversion
java version "11-internal" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev)
Java HotSpot(TM) 64-Bit Server VM 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev, mixed mode)
No AOT or CDS shown.
AFAICS there is only one place where this version string information can come from:
Abstract_VM_Version::vm_info_string():
case Arguments::_mixed:
if (UseSharedSpaces) {
if (UseAOT) {
return "mixed mode, aot, sharing";
#ifdef TIERED
} else if(is_client_compilation_mode_vm()) {
return "mixed mode, emulated-client, sharing";
#endif
} else {
return "mixed mode, sharing";
}
} else {
if (UseAOT) {
return "mixed mode, aot";
#ifdef TIERED
} else if(is_client_compilation_mode_vm()) {
return "mixed mode, emulated-client";
#endif
} else {
return "mixed mode";
}
}
but that requires UseAOT and UseSharedSpeces to be true.
Something unexpected is happening here.
JVM version:11-internal
JDI version: 9.0
JVM description: Java Debug Interface (Reference Implementation) version 9.0
Java Debug Wire Protocol (Reference Implementation) version 9.0
JVM Debug Interface version 11.0
JVM version 11-internal (Java HotSpot(TM) 64-Bit Server VM, mixed mode, aot, sharing)
This last line claims that AOT and CDS are being used!
I augmented the JDI code to show the actual command-line and to add -showversion. Here's the command line:
LAUNCHING VM: /export/users/dh198349/valhalla/repos/valhalla-dev/build/linux-x64-debug/images/jdk/bin/java -classpath /export/users/dh198349/valhalla/repos/valhalla-dev/open/test/jdk/JTwork/classes/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.d -Xdebug -showversion -Xrunjdwp:transport=dt_socket,address=bussund0416:48834,suspend=y Target
and here's the result of -showversion
java version "11-internal" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev)
Java HotSpot(TM) 64-Bit Server VM 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev, mixed mode)
No AOT or CDS shown.
AFAICS there is only one place where this version string information can come from:
Abstract_VM_Version::vm_info_string():
case Arguments::_mixed:
if (UseSharedSpaces) {
if (UseAOT) {
return "mixed mode, aot, sharing";
#ifdef TIERED
} else if(is_client_compilation_mode_vm()) {
return "mixed mode, emulated-client, sharing";
#endif
} else {
return "mixed mode, sharing";
}
} else {
if (UseAOT) {
return "mixed mode, aot";
#ifdef TIERED
} else if(is_client_compilation_mode_vm()) {
return "mixed mode, emulated-client";
#endif
} else {
return "mixed mode";
}
}
but that requires UseAOT and UseSharedSpeces to be true.
Something unexpected is happening here.
- backported by
-
JDK-8205235 JDWP/JDI VM information string is incorrect
-
- Resolved
-
- relates to
-
JDK-8204668 Cleanup management of the java.vm.info System property
-
- Resolved
-