YARN-6647. RM can crash during transitionToStandby due to InterruptedException. 
Contributed by Bibin A Chundatt


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a2c7a73e
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a2c7a73e
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a2c7a73e

Branch: refs/heads/YARN-5881
Commit: a2c7a73e33045ce42cce19aacbe45c0421a61994
Parents: 6b76695
Author: Jason Lowe <jl...@apache.org>
Authored: Tue Nov 28 11:10:18 2017 -0600
Committer: Jason Lowe <jl...@apache.org>
Committed: Tue Nov 28 11:15:44 2017 -0600

----------------------------------------------------------------------
 .../RMDelegationTokenSecretManager.java         | 42 ++++++++++++++------
 1 file changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a2c7a73e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java
index 53cc471..37cd741 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java
@@ -82,14 +82,21 @@ public class RMDelegationTokenSecretManager extends
     return new RMDelegationTokenIdentifier();
   }
 
+  private boolean shouldIgnoreException(Exception e) {
+    return !running && e.getCause() instanceof InterruptedException;
+  }
+
   @Override
   protected void storeNewMasterKey(DelegationKey newKey) {
     try {
       LOG.info("storing master key with keyID " + newKey.getKeyId());
       rm.getRMContext().getStateStore().storeRMDTMasterKey(newKey);
     } catch (Exception e) {
-      LOG.error("Error in storing master key with KeyID: " + 
newKey.getKeyId());
-      ExitUtil.terminate(1, e);
+      if (!shouldIgnoreException(e)) {
+        LOG.error(
+            "Error in storing master key with KeyID: " + newKey.getKeyId());
+        ExitUtil.terminate(1, e);
+      }
     }
   }
 
@@ -99,8 +106,10 @@ public class RMDelegationTokenSecretManager extends
       LOG.info("removing master key with keyID " + key.getKeyId());
       rm.getRMContext().getStateStore().removeRMDTMasterKey(key);
     } catch (Exception e) {
-      LOG.error("Error in removing master key with KeyID: " + key.getKeyId());
-      ExitUtil.terminate(1, e);
+      if (!shouldIgnoreException(e)) {
+        LOG.error("Error in removing master key with KeyID: " + 
key.getKeyId());
+        ExitUtil.terminate(1, e);
+      }
     }
   }
 
@@ -113,9 +122,11 @@ public class RMDelegationTokenSecretManager extends
       rm.getRMContext().getStateStore().storeRMDelegationToken(identifier,
           renewDate);
     } catch (Exception e) {
-      LOG.error("Error in storing RMDelegationToken with sequence number: "
-          + identifier.getSequenceNumber());
-      ExitUtil.terminate(1, e);
+      if (!shouldIgnoreException(e)) {
+        LOG.error("Error in storing RMDelegationToken with sequence number: "
+            + identifier.getSequenceNumber());
+        ExitUtil.terminate(1, e);
+      }
     }
   }
 
@@ -127,9 +138,11 @@ public class RMDelegationTokenSecretManager extends
           + id.getSequenceNumber());
       rm.getRMContext().getStateStore().updateRMDelegationToken(id, renewDate);
     } catch (Exception e) {
-      LOG.error("Error in updating persisted RMDelegationToken" +
-                " with sequence number: " + id.getSequenceNumber());
-      ExitUtil.terminate(1, e);
+      if (!shouldIgnoreException(e)) {
+        LOG.error("Error in updating persisted RMDelegationToken"
+            + " with sequence number: " + id.getSequenceNumber());
+        ExitUtil.terminate(1, e);
+      }
     }
   }
 
@@ -141,9 +154,12 @@ public class RMDelegationTokenSecretManager extends
           + ident.getSequenceNumber());
       rm.getRMContext().getStateStore().removeRMDelegationToken(ident);
     } catch (Exception e) {
-      LOG.error("Error in removing RMDelegationToken with sequence number: "
-          + ident.getSequenceNumber());
-      ExitUtil.terminate(1, e);
+      if (!shouldIgnoreException(e)) {
+        LOG.error(
+            "Error in removing RMDelegationToken with sequence number: "
+                + ident.getSequenceNumber());
+        ExitUtil.terminate(1, e);
+      }
     }
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to