You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/02/19 18:21:07 UTC

svn commit: r1447829 - /accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java

Author: ecn
Date: Tue Feb 19 17:21:07 2013
New Revision: 1447829

URL: http://svn.apache.org/r1447829
Log:
ACCUMULO-1053 move lease recovery check to isReady()

Modified:
    accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java

Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java?rev=1447829&r1=1447828&r2=1447829&view=diff
==============================================================================
--- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java (original)
+++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/recovery/RecoverLease.java Tue Feb 19 17:21:07 2013
@@ -20,7 +20,6 @@ import java.io.IOException;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.util.UtilWaitThread;
 import org.apache.accumulo.fate.Repo;
 import org.apache.accumulo.server.master.Master;
 import org.apache.accumulo.server.master.tableOps.MasterRepo;
@@ -67,14 +66,14 @@ public class RecoverLease extends Master
     if (diff < master.getSystemConfiguration().getTimeInMillis(Property.MASTER_RECOVERY_DELAY))
       return Math.max(diff, 0);
     FileSystem fs = master.getFileSystem();
-    if (fs.exists(getSource(master)))
-      return 0;
+    if (fs.exists(getSource(master))) {
+      return recoverLease(master);
+    }
     log.warn("Unable to locate file " + file + " wal for server " + server);
     return 1000;
   }
-
-  @Override
-  public Repo<Master> call(long tid, Master master) throws Exception {
+  
+  private long recoverLease(Master master) {
     Path source = getSource(master);
     FileSystem fs = master.getFileSystem();
     if (fs instanceof TraceFileSystem)
@@ -82,12 +81,12 @@ public class RecoverLease extends Master
     try {
       if (fs instanceof DistributedFileSystem) {
         DistributedFileSystem dfs = (DistributedFileSystem) fs;
-        while (!dfs.recoverLease(source)) {
+        if (!dfs.recoverLease(source)) {
           log.info("Waiting for file to be closed " + source.toString());
-          UtilWaitThread.sleep(1000);
+          return 1000;
         }
         log.info("Recovered lease on " + source.toString());
-        return new SubmitFileForRecovery(server, file);
+        return 0;
       }
     } catch (IOException ex) {
       log.error("error recovering lease ", ex);
@@ -95,13 +94,16 @@ public class RecoverLease extends Master
     try {
       fs.append(source).close();
       log.info("Recovered lease on " + source.toString() + " using append");
-      return new SubmitFileForRecovery(server, file);
+      return 0;
     } catch (IOException ex) {
       log.error("error recovering lease using append", ex);
-      RecoverLease result = new RecoverLease();
-      result.init(server, file);
-      return result;
+      return 1000;
     }
   }
+
+  @Override
+  public Repo<Master> call(long tid, Master master) throws Exception {
+    return new SubmitFileForRecovery(server, file);
+  }
   
 }