lucene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From markrmil...@apache.org
Subject svn commit: r1536513 - in /lucene/dev/branches/branch_4x: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java
Date Mon, 28 Oct 2013 20:45:41 GMT
Author: markrmiller
Date: Mon Oct 28 20:45:41 2013
New Revision: 1536513

URL: http://svn.apache.org/r1536513
Log:
SOLR-5397: If a retry fails, *always* finish the rest of the retries

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java?rev=1536513&r1=1536512&r2=1536513&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
(original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
Mon Oct 28 20:45:41 2013
@@ -72,46 +72,51 @@ public class SolrCmdDistributor {
     allErrors.addAll(errors);
     boolean blockUntilFinishedAgain = false;
     for (Error err : errors) {
-      String oldNodeUrl = err.req.node.getUrl();
-      
-      // if there is a retry url, we want to retry...
-      boolean isRetry = err.req.node.checkRetry();
-      boolean doRetry = false;
-      int rspCode = err.statusCode;
-      
-      if (testing_errorHook != null) Diagnostics.call(testing_errorHook, err.e);
-      
-      // this can happen in certain situations such as shutdown
-      if (isRetry) {
-        if (rspCode == 404 || rspCode == 403 || rspCode == 503
-            || rspCode == 500) {
-          doRetry = true;
-        }
+      try {
+        String oldNodeUrl = err.req.node.getUrl();
+        
+        // if there is a retry url, we want to retry...
+        boolean isRetry = err.req.node.checkRetry();
+        boolean doRetry = false;
+        int rspCode = err.statusCode;
         
-        // if its an ioexception, lets try again
-        if (err.e instanceof IOException) {
-          doRetry = true;
-        } else if (err.e instanceof SolrServerException) {
-          if (((SolrServerException) err.e).getRootCause() instanceof IOException) {
+        if (testing_errorHook != null) Diagnostics.call(testing_errorHook,
+            err.e);
+        
+        // this can happen in certain situations such as shutdown
+        if (isRetry) {
+          if (rspCode == 404 || rspCode == 403 || rspCode == 503
+              || rspCode == 500) {
             doRetry = true;
           }
-        }
-      }
-      
-      if (isRetry && err.req.retries < MAX_RETRIES_ON_FORWARD && doRetry)
{
-        err.req.retries++;
-
-        SolrException.log(SolrCmdDistributor.log, "forwarding update to "
-            + oldNodeUrl + " failed - retrying ... ");
-        try {
-          Thread.sleep(500);
-        } catch (InterruptedException e) {
-          Thread.currentThread().interrupt();
-          log.warn(null, e);
+          
+          // if its an ioexception, lets try again
+          if (err.e instanceof IOException) {
+            doRetry = true;
+          } else if (err.e instanceof SolrServerException) {
+            if (((SolrServerException) err.e).getRootCause() instanceof IOException) {
+              doRetry = true;
+            }
+          }
         }
         
-        submit(err.req);
-        blockUntilFinishedAgain = true;
+        if (isRetry && err.req.retries < MAX_RETRIES_ON_FORWARD && doRetry)
{
+          err.req.retries++;
+          
+          SolrException.log(SolrCmdDistributor.log, "forwarding update to "
+              + oldNodeUrl + " failed - retrying ... ");
+          try {
+            Thread.sleep(500);
+          } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            log.warn(null, e);
+          }
+          
+          submit(err.req);
+          blockUntilFinishedAgain = true;
+        }
+      } catch (Exception e) {
+        SolrException.log(log, "Retry attempt failed", e);
       }
     }
     

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java?rev=1536513&r1=1536512&r2=1536513&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java
(original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/StreamingSolrServers.java
Mon Oct 28 20:45:41 2013
@@ -32,13 +32,12 @@ import org.apache.solr.client.solrj.impl
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.util.JavaBinCodec;
 import org.apache.solr.update.SolrCmdDistributor.Error;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class StreamingSolrServers {
-  public static Logger scdlog = LoggerFactory.getLogger(SolrCmdDistributor.class);
+  public static Logger log = LoggerFactory.getLogger(StreamingSolrServers.class);
   
   private static HttpClient httpClient;
   static {
@@ -73,7 +72,7 @@ public class StreamingSolrServers {
       server = new ConcurrentUpdateSolrServer(url, httpClient, 100, 1, updateExecutor) {
         @Override
         public void handleError(Throwable ex) {
-          scdlog.error("error", ex);
+          log.error("error", ex);
           Error error = new Error();
           error.e = (Exception) ex;
           if (ex instanceof SolrException) {



Mime
View raw message