Vector API access to segments occurs using scoped memory access, see internal class ScopedMemoryAccess.
The closing shared arenas results in HotSpot checking if non-closing threads are performing segment access within a critical region, namely calls to methods in ScopedMemoryAccess annotated with @Scoped. To determine this HotSpot walks up the stack to find a scoped method. This walk is bounded in size and will result in assert failure in debug builds if the size threshold is crossed.
It is very likely that Vector API access to segments crosses the threshold, especially in the interpreter or C1 as vector segment access falls back to scalar segment access within the scoped region.
The closing shared arenas results in HotSpot checking if non-closing threads are performing segment access within a critical region, namely calls to methods in ScopedMemoryAccess annotated with @Scoped. To determine this HotSpot walks up the stack to find a scoped method. This walk is bounded in size and will result in assert failure in debug builds if the size threshold is crossed.
It is very likely that Vector API access to segments crosses the threshold, especially in the interpreter or C1 as vector segment access falls back to scalar segment access within the scoped region.
- relates to
-
JDK-8339551 Add a test to ensure that scoped methods have a bounded stack size
-
- Open
-
-
JDK-8339285 Test fails with assert(depth < max_critical_stack_depth) failed: can't have more than 10 critical frames
-
- Closed
-