-
Bug
-
Resolution: Done
-
Major
-
5.7.1.Final
-
None
When a LRA is closed the coordinator behaves incorrectly if a participant is slow to respond.
While the call to "/complete" is still ongoing, the coordinator (recovery module) may issue a second call to "/compensate", making it impossible for the participant to determine when a LRA is really closed.
The LRA coordinator must choose a single outcome for the LRA and be consistent with that (retrying until all participants are in status complete/failedtocomplete in this case).
A second minor problem is that the call to "/close" is synchronous, and the caller is kept attached forever if the participant does not respond to "/complete". It would be better to establish a timeout and return a "Completing" status if not all participant are done in time.
I attach few simple steps to reproduce it with shell commands.
- is related to
-
JBTM-2982 LRA participant completion calls during recovery do not timeout
- Closed