-
Bug
-
Resolution: Fixed
-
P2
-
16
-
b23
-
Not verified
The escape barrier reallocates scalarized objects potentially deep into the stack of a remote thread. Each allocation can safepoint, causing referenced frames to be invalid. Some sprinklings were added that deal with that, but I believe it was subsequently broken with the integration of the new vector API, that has its own new deoptimization code that did not know about this.
In order to make this less fragile, we should really have a RAII object that keeps the target thread's stack of the escape barrier, stable and processed, across safepoints. Then it becomes much easier to reason about its correctness.
In order to make this less fragile, we should really have a RAII object that keeps the target thread's stack of the escape barrier, stable and processed, across safepoints. Then it becomes much easier to reason about its correctness.