EVALUATION
http://hg.openjdk.java.net/hsx/hsx16/master/rev/4385d4e7497b
|
|
|
PUBLIC COMMENTS
The same assert might be hit with -XX:+UnlockDiagnosticVMOptions -XX:+Verify{Before,After}GC.
The workaround of -Xshare:off documented in the "Workaround" field would work around the issue(s),
but end up turning off class data sharing.
|
|
|
WORK AROUND
-Xshare:off
|
|
|
EVALUATION
http://hg.openjdk.java.net/hsx/hsx16/baseline/rev/4385d4e7497b
|
|
|
EVALUATION
http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/26f1542097f1
|
|
|
SUGGESTED FIX
http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/26f1542097f1
|
|
|
EVALUATION
Regression in behaviour happened as a result of a latent bug that pre-existed
hs15b01, but was uncovered as a result of the changes in 6689653. See comments section for more detail.
|
|
|
EVALUATION
This CR will be minimally fixed to attend to the regression, and a separate
one filed to rationalize the structure of CDS to prevent the recurrence
of similar errors in the future.
|
|
|
EVALUATION
Filed 6897789 for cleaning up CDS/perm structuring.
|
|
|
EVALUATION
As in suggested fix section. Need some archeology to see why this started
showing up now, but looks like it would be a day-one bug because of the
"ShouldNotReachHere()". Will update re history.
|
|
|
SUGGESTED FIX
diff -r 29adffcb6a61 src/share/vm/memory/compactingPermGenGen.cpp
--- a/src/share/vm/memory/compactingPermGenGen.cpp Fri Oct 30 13:31:11 2009 -0400
+++ b/src/share/vm/memory/compactingPermGenGen.cpp Mon Nov 02 10:22:28 2009 -0800
@@ -352,15 +352,13 @@ void CompactingPermGenGen::post_compact(
}
+// Do not use in time-critical operations due to the possibility of paging.
void CompactingPermGenGen::space_iterate(SpaceClosure* blk, bool usedOnly) {
OneContigSpaceCardGeneration::space_iterate(blk, usedOnly);
if (spec()->enable_shared_spaces()) {
-#ifdef PRODUCT
// Making the rw_space walkable will page in the entire space, and
- // is to be avoided. However, this is required for Verify options.
- ShouldNotReachHere();
-#endif
-
+ // is to be avoided. However, this is required for Verify and
+ // heap dump operations.
blk->do_space(ro_space());
blk->do_space(rw_space());
}
|
|
|
EVALUATION
Started failing starting with hs15b01. No clue as yet which specific change
in hs15b01 caused this to start failing. Still investigating.
|
|
|
EVALUATION
See comments and suggested fix section.
|
|
|
SUGGESTED FIX
Delete lines 358-362 below, or if you don't like that, replace
ShouldNotReachHere() with return; I personally think that
performance-sensitive code should either deliberately skip over the
shared space if it wants to, rather than use this whimsical
method of preventing the use of a legitimate interface for
other purposes:-
355 void CompactingPermGenGen::space_iterate(SpaceClosure* blk, bool usedOnly) {
356 OneContigSpaceCardGeneration::space_iterate(blk, usedOnly);
357 if (spec()->enable_shared_spaces()) {
358 #ifdef PRODUCT
359 // Making the rw_space walkable will page in the entire space, and
360 // is to be avoided. However, this is required for Verify options.
361 ShouldNotReachHere();
362 #endif
363
364 blk->do_space(ro_space());
365 blk->do_space(rw_space());
366 }
367 }
368
|
|
|