Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-8632

ConflictManager can cause deadlock on cache shutdown

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 9.2.0.Beta2
    • 9.2.0.Beta1
    • Core
    • None

    Description

      If stop is called on an EmbeddedCacheManager when the conflict resolution stage of a merge in ongoing, then it is impossible for ClusterCacheStatus::doLeave to proceed as ClusterCacheStatus::onPartitionMerge holds the ClusterCacheStatus lock. This is fine if conflict resolution completes successfully, however it is possible that the StateProviderImpl on the remote nodes has shutdown and therefore it's not possible for the ReplicaSpliterator to complete its execution and deadlock occurs.

      To prevent the above scenario we should improve how the StateReceiverImpl and DefaultConflictManager handle stopping caches. Furthermore, we should also introduce a timeout when attempting to discover cache conflicts.

      Attachments

        Activity

          People

            remerson@redhat.com Ryan Emerson
            remerson@redhat.com Ryan Emerson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: