private String checkRegionOperationDuplication(TConsensusGroupId regionId) {
    List<? extends RegionOperationProcedure<?>> otherRegionMemberChangeProcedures =
        getRegionOperationProcedures()
            .filter(
                regionMemberChangeProcedure ->
                    regionId.equals(regionMemberChangeProcedure.getRegionId()))
            .collect(Collectors.toList());
    if (!otherRegionMemberChangeProcedures.isEmpty()) {
      return String.format(
          "%s has some other region operation procedures in progress, their procedure id is: %s",
          regionId, otherRegionMemberChangeProcedures);
    }
    return null;
  }
The common checks of all region operations, include migration, reconstruction, extension,
removing

@param regionId region group id, also called consensus group id
@param targetDataNode DataNode should in Running status
@param relatedDataNodes Pair<Identity, Node Location>
@return The reason if check failed, or null if check pass
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java