-
Bug
-
Resolution: Done
-
Major
-
5.12.1.Final
-
None
LRA timeouts are managed by starting a timer and when it fires the LRA is cancelled.
But on machines with insufficient resources, processing eligible LRAs in the timeout queue can be tardy. If such an eligible LRA is asked to close before the timeout queue is processed then the LRA ends up closing instead of cancelling. Therefore if a close request arrives we should be checking if the deadline has passed and if so then we should transition the LRA to the cancelling state (the current code does not check if the deadline has been reached).