[ https://issues.apache.org/jira/browse/HDDS-4125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Glen Geng updated HDDS-4125: ---------------------------- Description: When a node goes stale the pipelines in that node have to be closed and removed from {{PipelineManager}}. Currently, the pipeline is only closed and left in {{PipelineManager}}. Since the Scheduler in SCMPipelineManager that used to destroyPipeline is removed, {code:java} scheduler.schedule(() -> destroyPipeline(pipeline), pipelineDestroyTimeoutInMillis, TimeUnit.MILLISECONDS, LOG, String.format("Destroy pipeline failed for pipeline:%s", pipeline));{code} meanwhile the PipelineManagerV2Impl::scrubPipeline only handles and remove RATIS THREE pipeline, {code:java} 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; } {code} RATIS ONE Pipeline is closed but not removed when a datanode goes stale. The solution is let scrubPipeline handle all kinds of pipelines. was:When a node goes stale the pipelines in that node have to be closed and removed from {{PipelineManager}}. Currently, the pipeline is only closed and left in {{PipelineManager}}. > Pipeline is not removed when a datanode goes stale > -------------------------------------------------- > > Key: HDDS-4125 > URL: https://issues.apache.org/jira/browse/HDDS-4125 > Project: Hadoop Distributed Data Store > Issue Type: Sub-task > Components: SCM HA > Reporter: Nanda kumar > Assignee: Glen Geng > Priority: Major > Labels: pull-request-available > > When a node goes stale the pipelines in that node have to be closed and > removed from {{PipelineManager}}. Currently, the pipeline is only closed and > left in {{PipelineManager}}. > > Since the Scheduler in SCMPipelineManager that used to destroyPipeline is > removed, > {code:java} > scheduler.schedule(() -> destroyPipeline(pipeline), > pipelineDestroyTimeoutInMillis, TimeUnit.MILLISECONDS, LOG, > String.format("Destroy pipeline failed for pipeline:%s", pipeline));{code} > meanwhile the PipelineManagerV2Impl::scrubPipeline only handles and remove > RATIS THREE pipeline, > {code:java} > 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; > } > {code} > RATIS ONE Pipeline is closed but not removed when a datanode goes stale. The > solution is let scrubPipeline handle all kinds of pipelines. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org