You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by GitBox <gi...@apache.org> on 2022/10/17 15:26:57 UTC

[GitHub] [ozone] sodonnel opened a new pull request, #3850: HDDS-7341. EC: Close pipelines with unregistered nodes

sodonnel opened a new pull request, #3850:
URL: https://github.com/apache/ozone/pull/3850

   ## What changes were proposed in this pull request?
   
   A datanode is stopped and before the stale node handler is triggered, SCM is restarted. When SCM restarts its loads all the only pipelines and nodes from RocksDB, and then all the nodes will register again.
   
   In the case of EC pipelines, there is nothing to trigger the close of a pipeline (and the containers on it) except:
   
   1. The Container getting full and the DN triggering the close
   2. The stale / dead node handlers noticing a node on it has gone dead.
   
   In the case above, the EC pipeline will sit forever in an Open state, but any attempt to write to it will likely result in errors on the client due to one of the nodes not being available. These errors still will not trigger it to close.
   
   A solution to this problem, is to add logic to the pipeline scrubber to close any pipelines that have unregistered nodes. Stale / Dead nodes should be handled by the existing stale / dead node handlers.
   
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-7341
   
   ## How was this patch tested?
   
   New unit test and validated on a docker compose cluster.


-- 
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: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] aswinshakil commented on a diff in pull request #3850: HDDS-7341. EC: Close pipelines with unregistered nodes

Posted by GitBox <gi...@apache.org>.
aswinshakil commented on code in PR #3850:
URL: https://github.com/apache/ozone/pull/3850#discussion_r998703445


##########
hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java:
##########
@@ -628,6 +635,31 @@ public void testScrubPipelines() throws Exception {
     pipelineManager.close();
   }
 
+  @Test
+  public void testScrubOpenWithUnregisteredNodes() throws Exception {
+    PipelineManagerImpl pipelineManager = createPipelineManager(true);
+    pipelineManager.setScmContext(scmContext);

Review Comment:
   At that time with Junit4, I had some issues with the test running, So I added it. I just checked now it is safe to remove. Thanks for cleaning it up @sodonnel.



-- 
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: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] sodonnel commented on a diff in pull request #3850: HDDS-7341. EC: Close pipelines with unregistered nodes

Posted by GitBox <gi...@apache.org>.
sodonnel commented on code in PR #3850:
URL: https://github.com/apache/ozone/pull/3850#discussion_r998700959


##########
hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java:
##########
@@ -628,6 +635,31 @@ public void testScrubPipelines() throws Exception {
     pipelineManager.close();
   }
 
+  @Test
+  public void testScrubOpenWithUnregisteredNodes() throws Exception {
+    PipelineManagerImpl pipelineManager = createPipelineManager(true);
+    pipelineManager.setScmContext(scmContext);

Review Comment:
   You are correct. I just copied the new test from an old one and adapted. I have removed that line from all the tests and they all pass locally.



-- 
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: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] errose28 commented on a diff in pull request #3850: HDDS-7341. EC: Close pipelines with unregistered nodes

Posted by GitBox <gi...@apache.org>.
errose28 commented on code in PR #3850:
URL: https://github.com/apache/ozone/pull/3850#discussion_r998568762


##########
hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java:
##########
@@ -628,6 +635,31 @@ public void testScrubPipelines() throws Exception {
     pipelineManager.close();
   }
 
+  @Test
+  public void testScrubOpenWithUnregisteredNodes() throws Exception {
+    PipelineManagerImpl pipelineManager = createPipelineManager(true);
+    pipelineManager.setScmContext(scmContext);

Review Comment:
   nit. I see other tests doing this as well but I'm not sure it's necessary since `createPipelineManager(boolean)` is passing this variable to the `PipelineManagerImpl` constructor.



-- 
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: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] sodonnel merged pull request #3850: HDDS-7341. EC: Close pipelines with unregistered nodes

Posted by GitBox <gi...@apache.org>.
sodonnel merged PR #3850:
URL: https://github.com/apache/ozone/pull/3850


-- 
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: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org