-
Bug
-
Resolution: Fixed
-
P4
-
22
-
b26
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8342501 | 21.0.6-oracle | Thomas Schatzl | P4 | Resolved | Fixed | b03 |
JDK-8330912 | 21.0.4 | Goetz Lindenmaier | P4 | Resolved | Fixed | b01 |
During Full GC "during gc" verification (-XX:VerifyDuringGC) g1 accesses the heap from top() to bottom() as if it were fully parsable.
This is wrong, because we already started class unloading in phase 1/marking (full gc "during gc" verification is right after phase 1), but the region's parsable bottom's are not set correctly (i.e. are bottom()) and since verification walks heap region object by object it accesses nominally unloaded klass data.
There is no issue at this point as metaspace data has not really been unloaded yet, but if we want to move metaspace purging to an earlier stage this will be an issue.
I.e. keeping this behavior would makeJDK-8317809 uglier than necessary.
This is wrong, because we already started class unloading in phase 1/marking (full gc "during gc" verification is right after phase 1), but the region's parsable bottom's are not set correctly (i.e. are bottom()) and since verification walks heap region object by object it accesses nominally unloaded klass data.
There is no issue at this point as metaspace data has not really been unloaded yet, but if we want to move metaspace purging to an earlier stage this will be an issue.
I.e. keeping this behavior would make
- backported by
-
JDK-8330912 G1 Full GC Heap verification relies on metadata not reset before verification
- Resolved
-
JDK-8342501 G1 Full GC Heap verification relies on metadata not reset before verification
- Resolved
- blocks
-
JDK-8317809 Insertion of free code blobs into code cache can be very slow during class unloading
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/ffdde9c2
-
Commit openjdk/jdk/1629a905
-
Review openjdk/jdk21u-dev/519
-
Review openjdk/jdk/16733
(2 links to)