-
Bug
-
Resolution: Fixed
-
P3
-
8, 10, 11, 17, 19, 21
-
b13
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8307040 | 20u-cpu | Tobias Hartmann | P3 | Resolved | Fixed | master |
JDK-8305561 | 20.0.2 | Tobias Hartmann | P3 | Resolved | Fixed | b03 |
JDK-8305159 | 17.0.8-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8306559 | 17.0.8 | Andrei Pangin | P3 | Resolved | Fixed | b01 |
JDK-8309983 | 11.0.21 | Goetz Lindenmaier | P3 | Resolved | Fixed | b01 |
JDK-8305143 | 11.0.20-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
Reproduced on 1.8.0_121, 1.8.0_144, 1.8.0_162 e.g.:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
FULL OS VERSION :
Linux 3.10.0-514.36.5.el7.x86_64 #1 SMP Thu Dec 28 21:42:18 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
Also reproduced on macOS High Sierra 10.13.3
A DESCRIPTION OF THE PROBLEM :
When application is started with -XX:+DebugNonSafepoints parameter the debug information is incorrect: mapping between code memory address and BCI/Java code is wrong. This causes profilers that depend on DebugNonSafepoints, including Flight Recorder, to attribute CPU time to wrong Java code. Please note that this problem is not caused by using profiler prone to safepoint bias or skid. The debug information is incorrect.
Some operations can make this problem to "go away" e.g. connecting with JVisualVM or Flight recorder completing recording and writing it down to disk.
The Java bug submission for is too short to include all information so I created a writeup here: https://github.com/jodzga/debugnonsafepoints-problem
It includes a sample test program, outputs and results of experiments that hopefully will help identify and fix the bug.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Did not try
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Did not try
REPRODUCIBILITY :
This bug can be reproduced always.
- backported by
-
JDK-8305143 DebugNonSafepoints generates incorrect information
- Resolved
-
JDK-8305159 DebugNonSafepoints generates incorrect information
- Resolved
-
JDK-8305561 DebugNonSafepoints generates incorrect information
- Resolved
-
JDK-8306559 DebugNonSafepoints generates incorrect information
- Resolved
-
JDK-8307040 DebugNonSafepoints generates incorrect information
- Resolved
-
JDK-8309983 DebugNonSafepoints generates incorrect information
- Resolved
- relates to
-
JDK-8129847 Compiling methods generated by Nashorn triggers high memory usage in C2
- Resolved
-
JDK-8303451 Synchronization entry in C2 debug info is misleading
- Open
- links to
-
Commit openjdk/jdk11u-dev/16e40e44
-
Commit openjdk/jdk17u-dev/9d6f1d71
-
Commit openjdk/jdk20u/2556e13d
-
Commit openjdk/jdk/94eda53d
-
Review openjdk/jdk11u-dev/1936
-
Review openjdk/jdk17u-dev/1255
-
Review openjdk/jdk17u-dev/1268
-
Review openjdk/jdk20u/40
-
Review openjdk/jdk/12806