Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix hang when compilation fails after invalidation
See OpenJ9:20750 for details. This commit fixes the possibility of the hang by forcing synchronous compilation if a compilation request comes from a body that has already been compiled before. Normally there is an early return if a compilation is in progress to reduce contention on the optimizationPlanMonitor. However, in the specific case where the request is coming from a body that has already been compiled, this means that the helper that is supposed to forward execution to the recompiled body cannot find the new body; in this situation, returning early results in execution returning to the startPC, which will just repeat the process. By forcing a sync compilation, either the compilation will fail and the startPC will get patched to revert to the interpreter or it will succeed and new invocations will get forwarded to the new body; it also prevents contention on the optimizationPlanMonitor. Signed-off-by: Irwin D'Souza <[email protected]>
- Loading branch information