-
Bug
-
Resolution: Fixed
-
P3
-
12
-
b14
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8261530 | 11.0.12-oracle | Dukebot | P3 | Resolved | Fixed | b01 |
JDK-8261772 | 11.0.11 | Poonam Bajaj Parhar | P3 | Resolved | Fixed | b03 |
JDK-8214615 | 8u211 | Poonam Bajaj Parhar | P3 | Resolved | Fixed | b01 |
JDK-8211738 | 8u202 | Poonam Bajaj Parhar | P3 | Resolved | Fixed | b01 |
JDK-8220868 | emb-8u211 | Poonam Bajaj Parhar | P3 | Resolved | Fixed | master |
G1 Full GC does not purge code root memory, and that causes a memory leak. The leak is illustrated in the attached file after_8141421_fix.png.
I made the following simple change that purges the code root memory
in the Full GC control path. With this change this leak goes away. (see attached file after_purge_fix.png)
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
@@ -1423,6 +1423,7 @@
hot_card_cache->reset_card_counts();
hot_card_cache->reset_hot_cache();
}
+ purge_code_root_memory();
// Rebuild remembered sets of all regions.
if (G1CollectedHeap::use_parallel_gc_threads()) {
We currently purge code root memory in VM_G1IncCollectionPause operation but not in VM_G1CollectFull which is causing this leak.
I made the following simple change that purges the code root memory
in the Full GC control path. With this change this leak goes away. (see attached file after_purge_fix.png)
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
@@ -1423,6 +1423,7 @@
hot_card_cache->reset_card_counts();
hot_card_cache->reset_hot_cache();
}
+ purge_code_root_memory();
// Rebuild remembered sets of all regions.
if (G1CollectedHeap::use_parallel_gc_threads()) {
We currently purge code root memory in VM_G1IncCollectionPause operation but not in VM_G1CollectFull which is causing this leak.
- backported by
-
JDK-8211738 G1 Full GC not purging code root memory and hence causing memory leak
- Resolved
-
JDK-8214615 G1 Full GC not purging code root memory and hence causing memory leak
- Resolved
-
JDK-8220868 G1 Full GC not purging code root memory and hence causing memory leak
- Resolved
-
JDK-8261530 G1 Full GC not purging code root memory and hence causing memory leak
- Resolved
-
JDK-8261772 G1 Full GC not purging code root memory and hence causing memory leak
- Resolved