docs: public void deliver(VoltMessage msg)
      {
          if (!m_isLeader && msg instanceof Iv2InitiateTaskMessage) {
              final Iv2InitiateTaskMessage m = (Iv2InitiateTaskMessage) msg;
              // We can't repair read only SP transactions. Just don't log them to the repair log.
              if (m.isReadOnly()) {
                  return;
              }
              m_lastSpHandle = m.getSpHandle();
              truncate(m.getTruncationHandle(), IS_SP);
  
              //Cann't repair MigratePartitionLeader
              if ("@MigratePartitionLeader".equalsIgnoreCase(m.getStoredProcedureName())) {
                  return;
              }
  
              m_logSP.add(new Item(IS_SP, m, m.getSpHandle(), m.getTxnId()));
          } else if (msg instanceof FragmentTaskMessage) {
              boolean newMp = false;
              final FragmentTaskMessage m = (FragmentTaskMessage) msg;
              if (m.getTxnId() > m_lastMpHandle || m_lastMpHandle == Long.MAX_VALUE) {
                  m_lastMpHandle = m.getTxnId();
                  newMp = true;
              }
  
              // We can't repair read only MP transactions. Just don't log them to the repair log.
              if (m.isReadOnly()) {
                  return;
              }
  
              truncate(m.getTruncationHandle(), IS_MP);
              // only log the first fragment of a procedure (and handle 1st case)
              if (newMp) {
                  m_logMP.add(new Item(IS_MP, m, m.getSpHandle(), m.getTxnId()));
                  m_lastSpHandle = m.getSpHandle();
              }
          }
          else if (msg instanceof CompleteTransactionMessage) {
              // a CompleteTransactionMessage which indicates restart is not the end of the
              // transaction.  We don't want to log it in the repair log.
              CompleteTransactionMessage ctm = (CompleteTransactionMessage)msg;
  
              //Restore will send a complete transaction message with a lower mp transaction id because
              //the restore transaction precedes the loading of the right mp transaction id from the snapshot
              //Hence Math.max
              m_lastMpHandle = Math.max(m_lastMpHandle, ctm.getTxnId());
  
              // We can't repair read only MP transactions. Just don't log them to the repair log.
              // Restart transaction do not need to be repaired here, don't log them as well.
              if (ctm.isReadOnly() || ctm.isRestart() || ctm.isAbortDuringRepair()) {
                  return;
              }
  
              truncate(ctm.getTruncationHandle(), IS_MP);
              m_logMP.add(new Item(IS_MP, ctm, ctm.getSpHandle(), ctm.getTxnId()));
              m_lastSpHandle = ctm.getSpHandle();
          } else if (msg instanceof DumpMessage) {
              String who = CoreUtils.hsIdToString(m_HSId);
              repairLogger.warn("Repair log dump for site: " + who + ", isLeader: " + m_isLeader
                      + ", " + who + ": lastSpHandle: " + m_lastSpHandle + ", lastMpHandle: " + m_lastMpHandle);
              for (Iv2RepairLogResponseMessage il : contents(0l, false)) {
                 repairLogger.warn("[Repair log contents]" + who + ": msg: " + il);
              }
          } else if (msg instanceof DummyTransactionTaskMessage) {
              m_lastSpHandle = Math.max(m_lastSpHandle, ((DummyTransactionTaskMessage) msg).getSpHandle());
          } else if (msg instanceof RepairLogTruncationMessage) {
              final RepairLogTruncationMessage truncateMsg = (RepairLogTruncationMessage) msg;
              truncate(truncateMsg.getHandle(), IS_SP);
          }
      }