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

(cherry picked from commit a2c7a73e33)
This commit is contained in:
Jason Lowe 2017-11-28 11:10:18 -06:00
parent b9239e0b79
commit e03725c262
1 changed files with 29 additions and 13 deletions

View File

@ -82,14 +82,21 @@ public class RMDelegationTokenSecretManager extends
return new RMDelegationTokenIdentifier(); return new RMDelegationTokenIdentifier();
} }
private boolean shouldIgnoreException(Exception e) {
return !running && e.getCause() instanceof InterruptedException;
}
@Override @Override
protected void storeNewMasterKey(DelegationKey newKey) { protected void storeNewMasterKey(DelegationKey newKey) {
try { try {
LOG.info("storing master key with keyID " + newKey.getKeyId()); LOG.info("storing master key with keyID " + newKey.getKeyId());
rm.getRMContext().getStateStore().storeRMDTMasterKey(newKey); rm.getRMContext().getStateStore().storeRMDTMasterKey(newKey);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error in storing master key with KeyID: " + newKey.getKeyId()); if (!shouldIgnoreException(e)) {
ExitUtil.terminate(1, 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()); LOG.info("removing master key with keyID " + key.getKeyId());
rm.getRMContext().getStateStore().removeRMDTMasterKey(key); rm.getRMContext().getStateStore().removeRMDTMasterKey(key);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error in removing master key with KeyID: " + key.getKeyId()); if (!shouldIgnoreException(e)) {
ExitUtil.terminate(1, 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, rm.getRMContext().getStateStore().storeRMDelegationToken(identifier,
renewDate); renewDate);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error in storing RMDelegationToken with sequence number: " if (!shouldIgnoreException(e)) {
+ identifier.getSequenceNumber()); LOG.error("Error in storing RMDelegationToken with sequence number: "
ExitUtil.terminate(1, e); + identifier.getSequenceNumber());
ExitUtil.terminate(1, e);
}
} }
} }
@ -127,9 +138,11 @@ public class RMDelegationTokenSecretManager extends
+ id.getSequenceNumber()); + id.getSequenceNumber());
rm.getRMContext().getStateStore().updateRMDelegationToken(id, renewDate); rm.getRMContext().getStateStore().updateRMDelegationToken(id, renewDate);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error in updating persisted RMDelegationToken" + if (!shouldIgnoreException(e)) {
" with sequence number: " + id.getSequenceNumber()); LOG.error("Error in updating persisted RMDelegationToken"
ExitUtil.terminate(1, e); + " with sequence number: " + id.getSequenceNumber());
ExitUtil.terminate(1, e);
}
} }
} }
@ -141,9 +154,12 @@ public class RMDelegationTokenSecretManager extends
+ ident.getSequenceNumber()); + ident.getSequenceNumber());
rm.getRMContext().getStateStore().removeRMDelegationToken(ident); rm.getRMContext().getStateStore().removeRMDelegationToken(ident);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error in removing RMDelegationToken with sequence number: " if (!shouldIgnoreException(e)) {
+ ident.getSequenceNumber()); LOG.error(
ExitUtil.terminate(1, e); "Error in removing RMDelegationToken with sequence number: "
+ ident.getSequenceNumber());
ExitUtil.terminate(1, e);
}
} }
} }