@Override
  public boolean equals(final Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null || getClass() != obj.getClass()) {
      return false;
    }
    final PipeTaskMeta that = (PipeTaskMeta) obj;
    return progressIndex.get().equals(that.progressIndex.get())
        && leaderNodeId.get() == that.leaderNodeId.get()
        && exceptionMessages.equals(that.exceptionMessages);
  }
Stores the exceptions encountered during run time of each pipe task.

<p>The exceptions are instances of {@link PipeRuntimeCriticalException}, {@link
PipeRuntimeConnectorCriticalException} and {@link PipeRuntimeNonCriticalException}.

<p>The failure of them, respectively, will lead to the stop of the pipe, the stop of the pipes
sharing the same connector, and nothing.
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/task/meta/PipeTaskMeta.java