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-gc-dev
mailing list