jojochuang commented on code in PR #6001: URL: https://github.com/apache/hadoop/pull/6001#discussion_r1322040705
########## hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/ZKDelegationTokenSecretManager.java: ########## @@ -520,24 +525,32 @@ protected int incrementDelegationTokenSeqNum() { // The secret manager will keep a local range of seq num which won't be // seen by peers, so only when the range is exhausted it will ask zk for // another range again - if (currentSeqNum >= currentMaxSeqNum) { - try { - // after a successful batch request, we can get the range starting point - currentSeqNum = incrSharedCount(delTokSeqCounter, seqNumBatchSize); - currentMaxSeqNum = currentSeqNum + seqNumBatchSize; - LOG.info("Fetched new range of seq num, from {} to {} ", - currentSeqNum+1, currentMaxSeqNum); - } catch (InterruptedException e) { - // The ExpirationThread is just finishing.. so dont do anything.. - LOG.debug( - "Thread interrupted while performing token counter increment", e); - Thread.currentThread().interrupt(); - } catch (Exception e) { - throw new RuntimeException("Could not increment shared counter !!", e); + try{ + this.currentSeqNumLock.lock(); Review Comment: Yeah.... a simple ReentrantLock looks like the way to go. But also > however we give batch size is 1 by default. oh.... i regret this. (zk-dt-secret-manager.token.seqnum.batch.size) is a configuration key not documented anywhere. How would folks discover this. @vikaskr22 did you need to update this configuration key in order to achieve the performance improvement? ########## hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/AbstractDelegationTokenSecretManager.java: ########## @@ -521,7 +521,6 @@ protected synchronized byte[] createPassword(TokenIdent identifier) { */ Review Comment: There is a slight chance the currentKey in line 495 and 499 may be inconsistent now that createPassword is no longer synchronized. Can we avoid that by making a local reference to currentKey to ensure within this method we refer to the same object. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org