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]