RFR: 8254125: Assertion in cppVtables.cpp during builds on 32bit Windows [v3]

Aleksey Shipilev shade at openjdk.java.net
Tue Oct 13 06:53:13 UTC 2020


On Tue, 13 Oct 2020 06:46:27 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> **Problem:** when iterating over the cloned vtables, the original code assumes that they are laid out consecutively in
>>   memory. However, since [JDK-8224509](https://bugs.openjdk.java.net/browse/JDK-8224509), the memory allocated for each
>>   of the the cloned vtables is now 8-byte aligned. This introduces gaps between the cloned vtables, and causes the assert
>>   to fail.
>> 
>> **Fix:** the fix is to no longer assume the consecutive memory layout. Instead, use the CppVtables::_index array to
>>   access each individual cloned vtable.
>> 
>> **Note:** I also cleaned up the code significantly. I feel the original code is pretty hard to understand, so if I just
>>   do the bare minimum to fix the bug, it will be pretty hard to review.
>> 
>> I would suggest that the reviewers look at just the new version of the code and see if it's working as described
>> (instead of looking at the diff to understand what the bug was and how it has been fixed).
>> This version still uses the x-macro CPP_VTABLE_TYPES_DO to enumerate over the classes whose vtables need to be cloned.
>> I plan to change that into templates in a future RFE.
>
> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes
> the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last
> revision:
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 8254125-cppvtables-assert-on-win32
>  - Fixed more cases with align_up(xxx, SharedSpaceObjectAlignment)
>  - Merge branch 'master' into 8254125-cppvtables-assert-on-win32
>  - 8254125: Assertion in cppVtables.cpp during builds on 32bit Windows

I tested the new patch, and it passes `tier1` on `Linux x86_32` (well, with some known failures).

-------------

Marked as reviewed by shade (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/591


More information about the hotspot-runtime-dev mailing list