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 2020/08/11 01:01:44 UTC

[lucene-solr] branch reference_impl_dev updated: @488 Harden test.

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

markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/reference_impl_dev by this push:
     new e82da9b  @488 Harden test.
e82da9b is described below

commit e82da9b9bc56e082dfe463884381c62a87ca7dc4
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Aug 10 20:01:20 2020 -0500

    @488 Harden test.
---
 .../src/java/org/apache/solr/handler/ReplicationHandler.java     | 9 ++++-----
 solr/core/src/java/org/apache/solr/handler/RestoreCore.java      | 2 +-
 solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java  | 2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
index 0f45a3c..4a23ceb 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -176,7 +176,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
 
   private ReentrantLock indexFetchLock = new ReentrantLock();
 
-  private ExecutorService restoreExecutor = ExecutorUtil.newMDCAwareSingleThreadExecutor(
+  private final ExecutorService restoreExecutor = ExecutorUtil.newMDCAwareSingleThreadExecutor(
       new SolrNamedThreadFactory("restoreExecutor"));
 
   private volatile Future<Boolean> restoreFuture;
@@ -1415,10 +1415,9 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
     core.addCloseHook(new CloseHook() {
       @Override
       public void preClose(SolrCore core) {
-        ExecutorUtil.shutdownAndAwaitTermination(restoreExecutor);
-        if (restoreFuture != null) {
-          restoreFuture.cancel(false);
-        }
+        restoreExecutor.shutdown();
+        restoreFuture.cancel(false);
+        ParWork.close(restoreExecutor);
       }
 
       @Override
diff --git a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
index 7110d87..5256c2a 100644
--- a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
@@ -134,7 +134,6 @@ public class RestoreCore implements Callable<Boolean> {
         throw new SolrException(SolrException.ErrorCode.UNKNOWN, "Exception while restoring the backup index", e);
       }
       if (success) {
-        core.getDirectoryFactory().doneWithDirectory(indexDir);
         // Cleanup all index files not associated with any *named* snapshot.
         core.deleteNonSnapshotIndexFiles(indexDirPath);
       }
@@ -142,6 +141,7 @@ public class RestoreCore implements Callable<Boolean> {
       return true;
     } finally {
       if (restoreIndexDir != null) {
+        core.getDirectoryFactory().doneWithDirectory(restoreIndexDir);
         core.getDirectoryFactory().release(restoreIndexDir);
       }
       if (indexDir != null) {
diff --git a/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java b/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
index 2412197..d8572cf 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
@@ -215,7 +215,7 @@ public class TestRestoreCore extends SolrJettyTestBase {
     TestReplicationHandlerBackup.runBackupCommand(masterJetty, ReplicationHandler.CMD_RESTORE, params);
 
     expectThrows(AssertionError.class, () -> {
-        for (int i = 0; i < 10; i++) {
+        for (int i = 0; i < 20; i++) {
           // this will throw an assertion once we get what we expect
           fetchRestoreStatus(baseUrl, DEFAULT_TEST_CORENAME);
           Thread.sleep(50);