The implementation of the retry keyword can cause problems when working off of stale worker cache data.
For example
atomic {
if (val.condition()) retry;
}
Will infinitely loop if val.condition() returns true only when state is inconsistent (the collection of cached objects read never existed at the same time on their respective stores in a consistent state).
We should update the transaction loop to check for stale objects before running a user retry or user abort.