You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Alexandr Kuramshin (JIRA)" <ji...@apache.org> on 2017/11/20 20:14:00 UTC

[jira] [Created] (IGNITE-6965) affinityCall() with key mapping may not be successful with AlwaysFailoverSpi when node left

Alexandr Kuramshin created IGNITE-6965:
------------------------------------------

             Summary: affinityCall() with key mapping may not be successful with AlwaysFailoverSpi when node left
                 Key: IGNITE-6965
                 URL: https://issues.apache.org/jira/browse/IGNITE-6965
             Project: Ignite
          Issue Type: Bug
          Components: cache, compute
    Affects Versions: 2.3
            Reporter: Alexandr Kuramshin


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.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)