This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new b7b843d9441 [fix](load) acquire latest token instead of oldest token 
in TokenManager (#34424)
b7b843d9441 is described below

commit b7b843d9441bbd88dd1b5cfdbe0113fbb01e0bf6
Author: Kaijie Chen <[email protected]>
AuthorDate: Mon May 6 20:19:01 2024 +0800

    [fix](load) acquire latest token instead of oldest token in TokenManager 
(#34424)
    
    * [fix](load) acquire latest token instead of oldest token
    
    * fixup
---
 .../main/java/org/apache/doris/load/loadv2/TokenManager.java | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/TokenManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/TokenManager.java
index ca714d66b29..21e9f9b0434 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/TokenManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/TokenManager.java
@@ -44,6 +44,7 @@ public class TokenManager {
 
     private  int thriftTimeoutMs = 300 * 1000;
     private  EvictingQueue<String> tokenQueue;
+    private  String latestToken;
     private  ScheduledExecutorService tokenGenerator;
 
     public TokenManager() {
@@ -52,20 +53,25 @@ public class TokenManager {
     public void start() {
         this.tokenQueue = EvictingQueue.create(Config.token_queue_size);
         // init one token to avoid async issue.
-        this.tokenQueue.offer(generateNewToken());
+        this.addNewToken(generateNewToken());
         this.tokenGenerator = Executors.newScheduledThreadPool(1,
                 new CustomThreadFactory("token-generator"));
-        this.tokenGenerator.scheduleAtFixedRate(() -> 
tokenQueue.offer(generateNewToken()), 0,
+        this.tokenGenerator.scheduleAtFixedRate(() -> 
this.addNewToken(generateNewToken()), 0,
                 Config.token_generate_period_hour, TimeUnit.HOURS);
     }
 
+    private void addNewToken(String token) {
+        tokenQueue.offer(token);
+        latestToken = token;
+    }
+
     private String generateNewToken() {
         return UUID.randomUUID().toString();
     }
 
     public String acquireToken() throws UserException {
         if (Env.getCurrentEnv().isMaster() || FeConstants.runningUnitTest) {
-            return tokenQueue.peek();
+            return latestToken;
         } else {
             try {
                 return acquireTokenFromMaster();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to