Caideyipi commented on code in PR #18297:
URL: https://github.com/apache/iotdb/pull/18297#discussion_r3654813998


##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java:
##########
@@ -258,21 +282,39 @@ protected Flow executeFromState(ConfigNodeProcedureEnv 
env, OperatePipeTaskState
           break;
         case CALCULATE_INFO_FOR_TASK:
           executeFromCalculateInfoForTask(env);
-          setNextState(OperatePipeTaskState.WRITE_CONFIG_NODE_CONSENSUS);
+          setNextState(
+              shouldExecutePreDeleteState()
+                  ? OperatePipeTaskState.PRE_DELETE
+                  : OperatePipeTaskState.WRITE_CONFIG_NODE_CONSENSUS);
+          break;
+        case PRE_DELETE:
+          executeFromPreDelete(env);
+          setNextState(OperatePipeTaskState.OPERATE_ON_DATA_NODES);

Review Comment:
   Done. PRE_DELETE has been removed from OperatePipeTaskState and 
AbstractOperatePipeProcedureV2. DropPipeProcedureV2 now persists PRE_DELETE in 
its normal consensus stage, pushes the dropped metadata to DataNodes, and then 
commits the final DropPipePlanV2. Implemented in 868007947d2.



##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java:
##########
@@ -412,6 +462,151 @@ protected OperatePipeTaskState getInitialState() {
     return OperatePipeTaskState.VALIDATE_TASK;
   }
 
+  public final String getTimeoutDiagnosticMessage() {
+    final PipeProcedureExecutionStage currentExecutionStage = executionStage;
+    return String.format(
+        ProcedureMessages
+            
.MESSAGE_PIPE_OPERATION_ARG_TIMED_OUT_PROCEDUREID_ARG_STUCK_AT_ARG_REASON_ARG_THE_PROCEDURE_IS_STILL_RUNNING_7EEAC50E,
+        getOperation().name(),
+        getProcId(),
+        currentExecutionStage.name(),
+        getTimeoutReason(currentExecutionStage));
+  }
+
+  private String getTimeoutReason(final PipeProcedureExecutionStage 
currentExecutionStage) {
+    final String failureMessage = getFailureMessage();
+    if (currentExecutionStage.isRollback()) {
+      return failureMessage == null
+          ? 
ProcedureMessages.MESSAGE_ROLLING_BACK_AFTER_AN_EARLIER_FAILURE_850D0AF5
+          : String.format(
+              
ProcedureMessages.MESSAGE_ROLLING_BACK_AFTER_FAILURE_ARG_474DF456, 
failureMessage);
+    }
+    if (isFailed() && failureMessage != null) {
+      return String.format(
+          
ProcedureMessages.MESSAGE_THE_STATE_FAILED_WITH_ARG_AND_ROLLBACK_IS_PENDING_E7B43829,
+          failureMessage);
+    }
+    if (lastExecutionExceptionMessage != null) {
+      return String.format(
+          ProcedureMessages
+              
.MESSAGE_THE_PREVIOUS_ATTEMPT_FAILED_WITH_ARG_AND_THIS_STATE_IS_BEING_RETRIED_7A541F27,
+          lastExecutionExceptionMessage);
+    }
+
+    switch (currentExecutionStage) {

Review Comment:
   Done. Both reviewed switches now use exhaustive enhanced switch expressions 
without a default branch. Implemented in 868007947d2.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to