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