Selaa lähdekoodia

ZOOKEEPER-2295: TGT refresh time logic is wrong
(Arshad Mohammad via rgs)

git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1718758 13f79535-47bb-0310-9956-ffa450edef68

Raúl Gutiérrez Segalés 9 vuotta sitten
vanhempi
commit
54480f6ab7
2 muutettua tiedostoa jossa 7 lisäystä ja 3 poistoa
  1. 3 0
      CHANGES.txt
  2. 4 3
      src/java/main/org/apache/zookeeper/Login.java

+ 3 - 0
CHANGES.txt

@@ -235,6 +235,9 @@ BUGFIXES:
   ZOOKEEPER-2299: NullPointerException in LocalPeerBean for ClientAddress
   (Arshad Mohammad via rgs)
 
+  ZOOKEEPER-2295: TGT refresh time logic is wrong
+  (Arshad Mohammad via rgs)
+
 IMPROVEMENTS:
   ZOOKEEPER-1660 Documentation for Dynamic Reconfiguration (Reed Wanderman-Milne via shralex)  
 

+ 4 - 3
src/java/main/org/apache/zookeeper/Login.java

@@ -155,7 +155,6 @@ public class Login {
                         if ((nextRefresh > expiry) ||
                                 ((now + MIN_TIME_BEFORE_RELOGIN) > expiry)) {
                             // expiry is before next scheduled refresh).
-                            LOG.info("refreshing now because expiry is before next scheduled refresh time.");
                             nextRefresh = now;
                         } else {
                             if (nextRefresh < (now + MIN_TIME_BEFORE_RELOGIN)) {
@@ -178,7 +177,9 @@ public class Login {
                             return;
                         }
                     }
-                    if (now < nextRefresh) {
+                    if (now == nextRefresh) {
+                        LOG.info("refreshing now because expiry is before next scheduled refresh time.");
+                    } else if (now < nextRefresh) {
                         Date until = new Date(nextRefresh);
                         LOG.info("TGT refresh sleeping until: {}", until.toString());
                         try {
@@ -193,7 +194,7 @@ public class Login {
                                 + " clock sync between this host and KDC - (KDC's clock is likely ahead of this host)."
                                 + " Manual intervention will be required for this client to successfully authenticate."
                                 + " Exiting refresh thread.", nextRefreshDate);
-                        return;
+                        break;
                     }
                     if (isUsingTicketCache) {
                         String cmd = "/usr/bin/kinit";