You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2015/04/28 13:50:11 UTC

svn commit: r1676501 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/update/UpdateLog.java

Author: markrmiller
Date: Tue Apr 28 11:50:11 2015
New Revision: 1676501

URL: http://svn.apache.org/r1676501
Log:
SOLR-7478: UpdateLog#close shuts down it's executor with interrupts before running it's close logic, possibly preventing a clean close.

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateLog.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1676501&r1=1676500&r2=1676501&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Apr 28 11:50:11 2015
@@ -217,6 +217,9 @@ Bug Fixes
 * SOLR-7470: Fix sample data to eliminate file order dependency for successful indexing, also 
   fixed SolrCloudExampleTest to help catch this in the future. (hossman)
 
+* SOLR-7478: UpdateLog#close shuts down it's executor with interrupts before running it's close logic,
+  possibly preventing a clean close. (Mark Miller)
+
 Optimizations
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateLog.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateLog.java?rev=1676501&r1=1676500&r2=1676501&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateLog.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/UpdateLog.java Tue Apr 28 11:50:11 2015
@@ -875,11 +875,7 @@ public class UpdateLog implements Plugin
   
   public void close(boolean committed, boolean deleteOnClose) {
     synchronized (this) {
-      try {
-        ExecutorUtil.shutdownNowAndAwaitTermination(recoveryExecutor);
-      } catch (Exception e) {
-        SolrException.log(log, e);
-      }
+      recoveryExecutor.shutdown(); // no new tasks
 
       // Don't delete the old tlogs, we want to be able to replay from them and retrieve old versions
 
@@ -893,6 +889,11 @@ public class UpdateLog implements Plugin
         log.forceClose();
       }
 
+      try {
+        ExecutorUtil.shutdownNowAndAwaitTermination(recoveryExecutor);
+      } catch (Exception e) {
+        SolrException.log(log, e);
+      }
     }
   }