Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-6965

affinityCall() with key mapping may not be successful with AlwaysFailoverSpi when node left

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.3
    • None
    • cache, compute
    • None

    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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            ein Alexandr Kuramshin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: