mqliang commented on a change in pull request #7086:
URL: https://github.com/apache/incubator-pinot/pull/7086#discussion_r658327196
##########
File path:
pinot-plugins/pinot-minion-tasks/pinot-minion-builtin-tasks/src/main/java/org/apache/pinot/plugin/minion/tasks/BaseSingleSegmentConversionExecutor.java
##########
@@ -70,6 +70,14 @@ public SegmentConversionResult executeTask(PinotTaskConfig
pinotTaskConfig)
String originalSegmentCrc =
configs.get(MinionConstants.ORIGINAL_SEGMENT_CRC_KEY);
String authToken = configs.get(MinionConstants.AUTH_TOKEN);
+ long currentSegmentCrc = getSegmentCrc(tableNameWithType, segmentName);
+ if (Long.parseLong(originalSegmentCrc) != currentSegmentCrc) {
+ LOGGER.info("Segment CRC does not match, skip the task. Original CRC:
{}, current CRC: {}", originalSegmentCrc,
+ currentSegmentCrc);
+ return new
SegmentConversionResult.Builder().setTableNameWithType(tableNameWithType).setSegmentName(segmentName)
+ .build();
Review comment:
Helix expose following result status for external usage:
```
public class TaskResult {
/**
* An enumeration of status codes.
*/
public enum Status {
/** The task completed normally. */
COMPLETED,
/**
* The task was cancelled externally, i.e. {@link
org.apache.helix.task.Task#cancel()} was
* called.
*/
CANCELED,
/** The task encountered an error from which it can not recover.
* This is equivalent to {@link
org.apache.helix.task.TaskResult.Status#FAILED}.*/
@Deprecated
ERROR,
/** The task encountered an error which can not be recovered from this
run, but it may still succeed by retrying the task. */
FAILED,
/** The task encountered an error, which will not be recoverable even
with retrying the task */
FATAL_FAILED
}
```
Helix does have an `TASK_ABORTED ` in it's state model, but it does not
exposed in TaskResult:
```
public enum TaskPartitionState {
/** The initial state of the state model. */
INIT,
/** Indicates that the task is currently running. */
RUNNING,
/** Indicates that the task was stopped by the controller. */
STOPPED,
/** Indicates that the task completed normally. */
COMPLETED,
/** Indicates that the task timed out. */
TIMED_OUT,
/** Indicates an error occurred during task execution, but the task can be
retried. */
TASK_ERROR,
/** Indicates an error occurred during task execution, and the task should
not be retried. */
TASK_ABORTED,
/** Helix's own internal error state. */
ERROR,
/** A Helix internal state. */
DROPPED
}
```
We need change Helix code if we want mark the task as `Aborted `
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]