avijayanhwx commented on a change in pull request #1998:
URL: https://github.com/apache/ozone/pull/1998#discussion_r611004955



##########
File path: 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestHDDSUpgrade.java
##########
@@ -305,4 +405,655 @@ public void 
testFinalizationFromInitialVersionToLatestVersion()
     // Verify that new pipeline can be created with upgraded datanodes.
     testPostUpgradePipelineCreation();
   }
+
+  /*
+   * All the subsequent tests here are failure cases. Some of the tests below
+   * could simultaneously fail one or more nodes at specific execution points
+   * and in different thread contexts.
+   * Upgrade path key execution points are defined in
+   * UpgradeFinalizer:UpgradeTestInjectionPoints.
+   */
+
+  /*
+   * Helper function to inject SCM failure and a SCM restart at a given
+   * execution point during SCM-Upgrade.
+   *
+   * Injects Failure in  : SCM
+   * Executing-Thread-Context : SCM-Upgrade
+   */
+  private Boolean injectSCMFailureDuringSCMUpgrade()
+      throws InterruptedException, TimeoutException, AuthenticationException,
+      IOException {
+    // For some tests this could get called in a different thread context.
+    // We need to guard concurrent updates to the cluster.
+    synchronized(cluster) {
+      cluster.restartStorageContainerManager(true);
+      loadSCMState();
+    }
+    // The ongoing current SCM Upgrade is getting aborted at this point. We
+    // need to schedule a new SCM Upgrade on a different thread context.
+    Thread t = new Thread(new Runnable() {
+      @Override
+      public void run() {
+        try {
+          loadSCMState();
+          scm.finalizeUpgrade("xyz");

Review comment:
       @prashantpogde Maybe I am missing something here, but the method 
'testFinalizationWithFailuerInjectionHelper' is also invoked, and within that 
we do a _scm.finalizeUpgrade("xyz")_. Why do we need to finalize twice?




-- 
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]

Reply via email to