RFR: 8029186: regression-hotspot nightly failure: assert(FLAG_IS_DEFAULT(MaxNewSize) || MaxNewSize < MaxHeapSize) failed
Stefan Johansson
stefan.johansson at oracle.com
Wed Apr 2 11:20:16 UTC 2014
I got a second review from Jon Masamitsu, he had some comments and these
have been fixed.
Here's an incremental webrev:
http://cr.openjdk.java.net/~sjohanss/8029186/webrev.01-02/
Here's the full change:
http://cr.openjdk.java.net/~sjohanss/8029186/webrev.02/
Thanks Jon and Jesper for reviewing this.
Cheers,
Stefan
On 2014-03-26 11:48, Stefan Johansson wrote:
> Thanks Jesper for looking at this.
>
> I actually found an issue myself when going over the code. The problem
> is in initialize_flags for the TwoGenerationalPolicy, where I verify
> that the desired new_size is within the allowed bounds. I realized
> that I need to check against the flag MaxNewSize since the member
> might not have been initialized yet. Below is the diff for the change
> and an updated webrev can be found here:
> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.01/
>
> ---
> @@ -422,7 +422,9 @@
> if (FLAG_IS_CMDLINE(OldSize) && !FLAG_IS_CMDLINE(NewSize)) {
> if (OldSize < _initial_heap_byte_size) {
> size_t new_size = _initial_heap_byte_size - OldSize;
> - if (new_size >= _min_gen0_size && new_size <= _max_gen0_size) {
> + // Need to compare against the flag value for max since
> _max_gen0_size
> + // might not have been set yet.
> + if (new_size >= _min_gen0_size && new_size <= MaxNewSize) {
> FLAG_SET_ERGO(uintx, NewSize, new_size);
> _initial_gen0_size = NewSize;
> }
> ---
>
> Thanks,
> Stefan
>
> On 2014-03-25 17:33, Jesper Wilhelmsson wrote:
>> Ship it!
>> /Jesper
>>
>> Stefan Johansson skrev 25/3/14 16:29:
>>> Hi,
>>>
>>> Please review this fix for:
>>> https://bugs.openjdk.java.net/browse/JDK-8029186
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.00/
>>>
>>> Summary:
>>> There have been a lot of bugs due to corner cases with heap sizing
>>> flags. This
>>> change strives to fix this particular problem and at the same time
>>> somewhat
>>> simplify the collector policy. I've also added some assertions to
>>> ensure that
>>> the sizing of the heap is more correct.
>>>
>>> Testing:
>>> * JPRT sanity and JTREG
>>> * Adhoc aurora run for tmtools tests
>>> * Script that verifies that we don't get assertions during startup
>>> for different
>>> combinations of NewSize, MaxNewSize, OldSize, Xms and Xmx.
>>>
>>> Thanks,
>>> StefanJ
>
More information about the hotspot-gc-dev
mailing list