HDFS-15826. Solve the problem of incorrect progress of delegation tokens when loading FsImage. (#2686)

Co-authored-by: zhujianghua <zhujianghua@zhujianghuadeMacBook-Pro.local>
This commit is contained in:
jianghuazhu 2021-02-22 15:22:32 +08:00 committed by GitHub
parent ff84a57483
commit 98ffd65d8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 5 deletions

View File

@ -191,7 +191,7 @@ public SecretManagerState(
}
}
public synchronized void loadSecretManagerState(SecretManagerState state)
public synchronized void loadSecretManagerState(SecretManagerState state, Counter counter)
throws IOException {
Preconditions.checkState(!running,
"Can't load state from image in a running SecretManager.");
@ -211,6 +211,7 @@ public synchronized void loadSecretManagerState(SecretManagerState state)
id.setSequenceNumber(t.getSequenceNumber());
id.setMasterKeyId(t.getMasterKeyId());
addPersistedDelegationToken(id, t.getExpiryDate());
counter.increment();
}
}

View File

@ -544,10 +544,9 @@ private void loadSecretManagerSection(InputStream in, StartupProgress prog,
Counter counter = prog.getCounter(Phase.LOADING_FSIMAGE, currentStep);
for (int i = 0; i < numTokens; ++i) {
tokens.add(SecretManagerSection.PersistToken.parseDelimitedFrom(in));
counter.increment();
}
fsn.loadSecretManagerState(s, keys, tokens);
fsn.loadSecretManagerState(s, keys, tokens, counter);
}
private void loadCacheManagerSection(InputStream in, StartupProgress prog,

View File

@ -6241,8 +6241,10 @@ void loadSecretManagerStateCompat(DataInput in) throws IOException {
void loadSecretManagerState(SecretManagerSection s,
List<SecretManagerSection.DelegationKey> keys,
List<SecretManagerSection.PersistToken> tokens) throws IOException {
dtSecretManager.loadSecretManagerState(new SecretManagerState(s, keys, tokens));
List<SecretManagerSection.PersistToken> tokens,
StartupProgress.Counter counter) throws IOException {
dtSecretManager.loadSecretManagerState(new SecretManagerState(s, keys, tokens),
counter);
}
/**