RFR(s): 8168790: CDS: assert(max_delta <= (0x7FFFFFFF)) failed: range check
dmitry.dmitriev at oracle.com
Mon Nov 14 14:20:03 UTC 2016
Can comment only new test: I think it will be better to dump classes to
the non-default archive, i.e. add following options to the test, e.g.:
On 11.11.2016 3:00, Jiangli Zhou wrote:
> Please review the following fix for JDK-8168790 <https://bugs.openjdk.java.net/browse/JDK-8168790>.
> http://cr.openjdk.java.net/~jiangli/8168790/webrev.00/ <http://cr.openjdk.java.net/~jiangli/8168790/webrev.00/>
> The assert(max_delta <= MAX_SHARED_DELTA, "range check”) in CompactSymbolTableWriter::add(unsigned in hash, Symbol *symbol) was not necessary and over restrictive.
> Currently only shared symbols use encoding with delta to the shared space base. The shared symbols are allocated in the RO space, which is first space in the shared archive. The RO space cannot be larger than MAX_SHARED_READ_ONLY_SIZE (the check is done as part of the VM argument checks). MAX_SHARED_READ_ONLY_SIZE is (MAX_SHARED_DELTA - RW_size - MC_size - MD_size). I changed the assertion to make sure the currently ‘delta' is encodable (less than MAX_SHARED_DELTA).
> Tested with JPRT, RBT runtime and AppCDS tests.
More information about the hotspot-runtime-dev