docs: private void doLocalInitiateOffer(Iv2InitiateTaskMessage msg)
      {
          final VoltTrace.TraceEventBatch traceLog = VoltTrace.log(VoltTrace.Category.SPI);
          if (traceLog != null) {
              final String threadName = Thread.currentThread().getName(); // Thread name has to be materialized here
              traceLog.add(() -> VoltTrace.meta("process_name", "name", CoreUtils.getHostnameOrAddress()))
                      .add(() -> VoltTrace.meta("thread_name", "name", threadName))
                      .add(() -> VoltTrace.meta("thread_sort_index", "sort_index", Integer.toString(10000)))
                      .add(() -> VoltTrace.beginAsync("initsp",
                                                      MiscUtils.hsIdPairTxnIdToString(m_mailbox.getHSId(), m_mailbox.getHSId(), msg.getSpHandle(), msg.getClientInterfaceHandle()),
                                                      "ciHandle", msg.getClientInterfaceHandle(),
                                                      "txnId", TxnEgo.txnIdToString(msg.getTxnId()),
                                                      "partition", m_partitionId,
                                                      "read", msg.isReadOnly(),
                                                      "name", msg.getStoredProcedureName(),
                                                      "hsId", CoreUtils.hsIdToString(m_mailbox.getHSId())));
          }
  
          final String procedureName = msg.getStoredProcedureName();
          final SpProcedureTask task =
              new SpProcedureTask(m_mailbox, procedureName, m_pendingTasks, msg);
  
          ListenableFuture<Object> durabilityBackpressureFuture =
                  m_cl.log(msg, msg.getSpHandle(), null, m_durabilityListener, task);
  
          if (traceLog != null && durabilityBackpressureFuture != null) {
              traceLog.add(() -> VoltTrace.beginAsync("durability",
                                                      MiscUtils.hsIdTxnIdToString(m_mailbox.getHSId(), msg.getSpHandle()),
                                                      "txnId", TxnEgo.txnIdToString(msg.getTxnId()),
                                                      "partition", Integer.toString(m_partitionId)));
          }
  
          //Durability future is always null for sync command logging
          //the transaction will be delivered again by the CL for execution once durable
          //Async command logging has to offer the task immediately with a Future for backpressure
          if (m_cl.canOfferTask()) {
              m_pendingTasks.offer(task.setDurabilityBackpressureFuture(durabilityBackpressureFuture));
          }
      }