--- old/src/hotspot/share/gc/z/zMark.cpp 2019-02-18 10:36:36.122764814 +0100 +++ new/src/hotspot/share/gc/z/zMark.cpp 2019-02-18 10:36:35.610756933 +0100 @@ -119,6 +119,11 @@ } class ZMarkRootsIteratorClosure : public ZRootsIteratorClosure { +private: + static void fixup_address(HeapWord** p) { + *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p); + } + public: ZMarkRootsIteratorClosure() { ZStatTLAB::reset(); @@ -136,6 +141,7 @@ // Retire TLAB if (UseTLAB && thread->is_Java_thread()) { + thread->tlab().addresses_do(fixup_address); thread->tlab().retire(ZStatTLAB::get()); thread->tlab().resize(); }