We're updating the issue view to help you get more done. 

Infinite loop during on-stack-replacement

Description

According to Da Feng, an infinite loop can occur during on-stack-replacement. Quote from MRP-102:

OK, find the bug! If the target of OSR has a yield point immediately after the jmp instruction, the RVMThread yield point will call OSRListener.checkForOSRPromotion to check for OSR. Since the Baseline compiled method didn't have methodId changed, the methodId on stack obtained through fp will be the old Baseline compiled one. This will cause a dead loop. So I just add a clearOutdate method to CompiledMethod, and clear the outdate bit of flag in OnStackReplacementPlan

Environment

All

Status

Assignee

Unassigned

Reporter

Erik Brangs

Labels

None

External issue ID

None

Fix versions

Affects versions

3.1.3

Priority

Medium