Description
When doing affinityCall(cacheName, key, callable) there is a race between affinity node left then stopped and AlwaysFailoverSpi max attempts reached.
Suppose the following sequence (more probable when grid2.order >> grid1.order):
1. grid1.affinityCall(cacheName, key, callable)
2. grid1: key mapped to the primary partition on grid2
3. grid2.stop()
4. grid1 receives NODE_LEFT and updates discoCache
5. grid1 execution callable failed with 'Failed to send job request because remote node left grid (if fail-over is enabled, will attempt fail-over to another node'
6. grid1: AlwaysFailoverSpi max attempts reached.
7. grid1.affinityCall failed with 'Job failover failed because number of maximum failover attempts for affinity call is exceeded'
8. grid2 receives verified node left message then stopping.
The patched CacheAffinityCallSelfTest reproduces the problem.