[ https://issues.apache.org/jira/browse/IGNITE-6965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexandr Kuramshin updated IGNITE-6965: --------------------------------------- Attachment: IGNITE_6965_affinityCall_with_key_mapping_AlwaysFailoverSpi_node_left.patch > 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 > Attachments: > IGNITE_6965_affinityCall_with_key_mapping_AlwaysFailoverSpi_node_left.patch > > > 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)