@Override
  public void rollbackFromOperateOnDataNodes(ConfigNodeProcedureEnv env)
      throws SubscriptionException, IOException {
    LOGGER.info("AlterConsumerGroupProcedure: rollbackFromOperateOnDataNodes");

    final List<TSStatus> statuses =
        env.pushSingleConsumerGroupOnDataNode(existingConsumerGroupMeta.serialize());
    if (RpcUtils.squashResponseStatusList(statuses).getCode()
        != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
      // throw exception instead of logging warn, do not rely on metadata synchronization
      throw new SubscriptionException(
          String.format(
              "Failed to rollback from altering consumer group (%s -> %s) on data nodes, because %s",
              existingConsumerGroupMeta, updatedConsumerGroupMeta, statuses));
    }
  }
This is only used when the subscription info lock is held by another procedure.
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/consumer/AlterConsumerGroupProcedure.java