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

TransactionLogger Not Unlocked/Disabled

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • None
    • 4.2.1.FINAL
    • Core
    • None

    Description

      If rehashing is DISABLED, the transaction logger is NOT unlocked and disabled for sender / receivers.

      Typically the process is as follows:

      1) Enable the transaction logger. (DistributionManagerImpl.rehash)
      2) Submit InvertedLeaveTask. (DistributionManagerImpl.rehash)
      3) Block new transactions if this is a receiver. (InvertedLeaveTask.performRehash)
      4) Process / Drain transaction log if this is a sender. (InvertedLeaveTask.performRehash)
      5) Unblock new transactions if this is a receiver.

      The problem is that step 4 is only performed if rehashing is enabled. This is the step that eventually unlocks and disables the transaction logger.

      Our temporary fix was to add an 'else' block that called 'processAndDrainTxLog'.

      if (configuration.isRehashEnabled()) {
      ...
      }
      else {
      processAndDrainTxLog(oldCH, newCH, replCount);
      }

      So far, it seems to be working. Our cluster is stable.

      Of note is that we did not keep the 'isSender' check. When we used it, the transaction log remained enabled on any node that was ONLY a receiver.

      I suspect this is because during a standard rehash the RemoteTransactionLogger sends a RehashControlCommand that ultimately unlocks and disables the transaction logger? This would place the responsibility on the sender and ensure that ALL receivers do so.

      Attachments

        Activity

          People

            manik_jira Manik Surtani (Inactive)
            shane_dev_jira Shane Johnson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: