RFR (XS) 8205702: assert(UseCompressedClassPointers) failed in universe.hpp

Per Liden per.liden at oracle.com
Wed Jun 27 07:15:04 UTC 2018


Hi Coleen,

This doesn't look quite right to me. ZGC already disables 
UseCompressedOop and UseCompressedClassPointers, which should be the 
indicators that we can't use CDS. The problem is that CDS checks those 
flags _before_ the heap has had a change to say they it supports. So if 
we just move the call to set_shared_spaces_flags() after the call to 
GCConfig::arguments()->initialize() (which should be safe), then we're 
all good and you'll get the usual:

$ ./build/fastdebug/images/jdk/bin/java -Xshare:dump 
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC
Error occurred during initialization of VM
Cannot dump shared archive when UseCompressedOops or 
UseCompressedClassPointers is off.

Here's a proposed patch for this, which also adjusts the appropriate 
tests for this:

http://cr.openjdk.java.net/~pliden/8205702/webrev.0

cheers,
Per

On 06/27/2018 01:09 AM, coleen.phillimore at oracle.com wrote:
> 
> Hi Calvin, thank you for reporting the bug and the code review and test 
> code.
> 
> On 6/26/18 5:42 PM, Calvin Cheung wrote:
>> Hi Coleen,
>>
>> The code changes look good.
>>
>> Since there's a new error message, I'd suggest adding a test to 
>> runtime/SharedArchiveFile/SharedArchiveFile.java as follows:
>>
>> diff --git 
>> a/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java 
>> b/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java
>> --- a/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java
>> +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java
>> @@ -52,5 +52,13 @@
>>                                "-Xshare:on", "-version");
>>          out = CDSTestUtils.executeAndLog(pb, "SharedArchiveFile");
>>          CDSTestUtils.checkExec(out);
>> +
>> +        // CDS dumping doesn't work with ZGC
>> +        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true,
>> + "-XX:SharedArchiveFile=./SharedArchiveFile.jsa",
>> +                                "-XX:+UseZGC",
>> +                                "-Xshare:dump");
>> +        out = CDSTestUtils.executeAndLog(pb, "SharedArchiveFile");
>> +        CDSTestUtils.checkExecExpectError(out, 1, "DumpSharedSpaces 
>> (-Xshare:dump) is not supported with ZGC.");
>>      }
>>  }
>>
>> (I haven't tested the above)
> 
> It needed an -XX:+UnlockExperimentalVMOptions as well, and not reclare pb.
> 
> open webrev at http://cr.openjdk.java.net/~coleenp/8205702.02/webrev
> 
>>
>> Also, I think the new error message should be included in the release 
>> notes.
>>
> 
> I added the test case and it passes.  I don't think having a release 
> note for something that nobody would ever do for an experimental option 
> is worth having.   But I can look into the ZGC release notes and see if 
> there's something that says CDS is not supported.
> 
> Thanks,
> Coleen
>> thanks,
>> Calvin
>>
>> On 6/26/18, 2:13 PM, coleen.phillimore at oracle.com wrote:
>>> Summary: Disable CDS with ZGC
>>>
>>> Tested with:
>>> java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xshare:dump
>>> java -XX:+UnlockExperimentalOptions -XX:+UseZGC -Xshare:on -version
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8205702.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8205702
>>>
>>> Thanks,
>>> Coleen
> 


More information about the hotspot-runtime-dev mailing list