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

Co-authored-by: zhujianghua <zhujianghua@zhujianghuadeMacBook-Pro.local>
(cherry picked from commit 98ffd65d8b)
(cherry picked from commit ee0e32abdc)
This commit is contained in:
jianghuazhu 2021-02-22 15:22:32 +08:00 committed by Wei-Chiu Chuang
parent 5abf19a773
commit efb796f45f
3 changed files with 7 additions and 5 deletions

View File

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

View File

@ -408,10 +408,9 @@ public final class FSImageFormatProtobuf {
Counter counter = prog.getCounter(Phase.LOADING_FSIMAGE, currentStep); Counter counter = prog.getCounter(Phase.LOADING_FSIMAGE, currentStep);
for (int i = 0; i < numTokens; ++i) { for (int i = 0; i < numTokens; ++i) {
tokens.add(SecretManagerSection.PersistToken.parseDelimitedFrom(in)); 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, private void loadCacheManagerSection(InputStream in, StartupProgress prog,

View File

@ -5853,8 +5853,10 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
void loadSecretManagerState(SecretManagerSection s, void loadSecretManagerState(SecretManagerSection s,
List<SecretManagerSection.DelegationKey> keys, List<SecretManagerSection.DelegationKey> keys,
List<SecretManagerSection.PersistToken> tokens) throws IOException { List<SecretManagerSection.PersistToken> tokens,
dtSecretManager.loadSecretManagerState(new SecretManagerState(s, keys, tokens)); StartupProgress.Counter counter) throws IOException {
dtSecretManager.loadSecretManagerState(new SecretManagerState(s, keys, tokens),
counter);
} }
/** /**