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 53cc4716ca6..37cd7416697 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); + } } }