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

KeyAffinityService's topology change listener can hang state transfer/cache view installation

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 5.1.0.CR2, 5.1.0.FINAL
    • 5.1.0.CR1
    • Core
    • None

      When a node leaves, KeyGeneratorWorker can get in an infinite loop because the consistent hash doesn't return the leaver any more and KeyGeneratorWorker will never be able to generate the required number of keys.

      KeyAffinityServiceImpl installs a listener for TopologyChangeEvents that is supposed to adjust the queues and prevent this problem. However, it doesn't work if KeyGeneratorWorker is already generating keys, because it needs to acquire the maxNumberInvariant write lock and KeyGeneratorWorker is never going to release the maxNumberInvariant read lock.

      What's worse, because the listener is synchronous, it also blocks the cache view installation and other cluster changes will be ignored.

              dberinde@redhat.com Dan Berindei (Inactive)
              dberinde@redhat.com Dan Berindei (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: