Repository: hadoop Updated Branches: refs/heads/branch-3.0.0 b9239e0b7 -> e03725c26
YARN-6647. RM can crash during transitionToStandby due to InterruptedException. Contributed by Bibin A Chundatt (cherry picked from commit a2c7a73e33045ce42cce19aacbe45c0421a61994) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e03725c2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e03725c2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e03725c2 Branch: refs/heads/branch-3.0.0 Commit: e03725c262aac44dcf7d42432f0b5e35ff8ff005 Parents: b9239e0 Author: Jason Lowe <[email protected]> Authored: Tue Nov 28 11:10:18 2017 -0600 Committer: Jason Lowe <[email protected]> Committed: Tue Nov 28 11:26:47 2017 -0600 ---------------------------------------------------------------------- .../RMDelegationTokenSecretManager.java | 42 ++++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e03725c2/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: [email protected] For additional commands, e-mail: [email protected]
