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

Async cache operations in IGFS may cause deadlock related to topology update

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • ignite-1.4
    • ignite-1.4
    • cache, igfs
    • None

    Description

      In an IGFS test we observe a deadlock situation related to cluster topology update (full thread dump is attached).
      The problem is that several threads are waiting for the topology update, at the same time holding the read lock of the topology version update:
      Thread #1:
      GridAffinityAssignmentCache.awaitTopologyVersion(GridAffinityAssignmentCache.java:450)
      ....
      GridNearOptimisticTxPrepareFuture.prepareOnTopology(GridNearOptimisticTxPrepareFuture.java:280)

      At the same time another thread, that wants to update the topology version, cannot do that because it needs the write lock of the topology update:
      Thread #2:
      at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945)
      at o.a.i.i.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.updateTopologyVersion(GridDhtPartitionTopologyImpl.java:190)

      Attachments

        1. deadlock-1304.txt
          141 kB
          Ivan Veselovsky

        Issue Links

          Activity

            People

              Unassigned Unassigned
              iveselovskiy Ivan Veselovsky
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: