diff -r d888a9d9f9a5 -r 7678903a348f src/hotspot/share/memory/metaspace/spaceManager.cpp --- a/src/hotspot/share/memory/metaspace/spaceManager.cpp Tue Oct 29 12:07:19 2019 +0100 +++ b/src/hotspot/share/memory/metaspace/spaceManager.cpp Tue Oct 29 12:10:57 2019 +0100 @@ -127,6 +127,14 @@ log_debug(metaspace)("SpaceManager %s: allocated new chunk " METACHUNK_FORMAT " for requested word size " SIZE_FORMAT ".", _name, METACHUNK_FORMAT_ARGS(c), requested_word_size); + // Workaround for JDK-8233019: never return space allocated at a 32bit aligned address + if (Settings::do_not_return_32bit_aligned_addresses() && + (((intptr_t)c->base()) & 0xFFFFFFFF) == 0) + { + bool ignored; + c->allocate(1, &ignored); + } + return c; }