Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
Description
Since the Scheduler in SCMPipelineManager that used to destroyPipeline is removed,
scheduler.schedule(() -> destroyPipeline(pipeline), pipelineDestroyTimeoutInMillis, TimeUnit.MILLISECONDS, LOG, String.format("Destroy pipeline failed for pipeline:%s", pipeline));
meanwhile the PipelineManagerV2Impl::scrubPipeline only handles and remove RATIS THREE pipeline,
public void scrubPipeline(ReplicationType type, ReplicationFactor factor) throws IOException { checkLeader(); if (type != ReplicationType.RATIS || factor != ReplicationFactor.THREE) { // Only srub pipeline for RATIS THREE pipeline return; }
RATIS ONE Pipeline is closed but not removed when a datanode goes stale. The solution is let scrubPipeline handle all kinds of pipelines.