RFR(XXS): 8229437: assert(is_aligned(ref, HeapWordSize)) failed: invariant

Erik Gahlin erik.gahlin at oracle.com
Fri Aug 23 15:19:18 UTC 2019


Looks good.

Erik

> Greetings,
>
> Please review this small change set.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-822943
> Webrev: http://cr.openjdk.java.net/~mgronlun/8229437/webrev01/
>
> Summary:
> Refactoring as part of https://bugs.openjdk.java.net/browse/JDK-8214542 copied the alignment assertion to the target delegates do_root() member function. But this is too strong since encoded narrowOop* references also forwards into the same do_root() member function.
>
> The alignment assertions are (still) done inside the RootSetClosure before references are forwarded to delegates. Therefore we are not weakening validity checks by this change set.
>
> Thanks
> Markus
>
> diff -r 807d192fb7dd -r 97a842e42b38 src/hotspot/share/jfr/leakprofiler/chains/bfsClosure.cpp
> --- a/src/hotspot/share/jfr/leakprofiler/chains/bfsClosure.cpp  Wed Aug 14 00:18:00 2019 -0400
> +++ b/src/hotspot/share/jfr/leakprofiler/chains/bfsClosure.cpp  Wed Aug 14 11:20:25 2019 +0200
> @@ -230,8 +230,6 @@
>
>   void BFSClosure::do_root(const oop* ref) {
>     assert(ref != NULL, "invariant");
> -  assert(is_aligned(ref, HeapWordSize), "invariant");
> -  assert(*ref != NULL, "invariant");
>     if (!_edge_queue->is_full()) {
>       _edge_queue->add(NULL, ref);
>     }
> diff -r 807d192fb7dd -r 97a842e42b38 src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.cpp
> --- a/src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.cpp  Wed Aug 14 00:18:00 2019 -0400
> +++ b/src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.cpp  Wed Aug 14 11:20:25 2019 +0200
> @@ -178,8 +178,7 @@
>
>   void DFSClosure::do_root(const oop* ref) {
>     assert(ref != NULL, "invariant");
> -  assert(is_aligned(ref, HeapWordSize), "invariant");
> -  const oop pointee = *ref;
> +  const oop pointee = UnifiedOop::dereference(ref);
>     assert(pointee != NULL, "invariant");
>     closure_impl(ref, pointee);
>   }



More information about the hotspot-jfr-dev mailing list