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/09/02 02:58:23 UTC

[lucene-solr] branch reference_impl_dev updated: @693 You can get stuck in doRecovery.

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 90573ca  @693 You can get stuck in doRecovery.
90573ca is described below

commit 90573cabb7838c7ea83574b7e439a88150d165c3
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Sep 1 21:58:06 2020 -0500

    @693 You can get stuck in doRecovery.
---
 solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
index cca3ca4..c9e95c9 100644
--- a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
+++ b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
@@ -347,7 +347,7 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover
           recoveryWaiting.incrementAndGet();
           cancelRecovery();
 
-          recoveryLock.lock();
+          recoveryLock.lockInterruptibly();
           // don't use recoveryLock.getQueueLength() for this
           if (recoveryWaiting.decrementAndGet() > 0) {
             // another recovery waiting behind us, let it run now instead of after we finish
@@ -375,6 +375,8 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover
           recoveryStrat.setRecoveringAfterStartup(recoveringAfterStartup);
           recoveryStrat.run();
 
+        } catch (InterruptedException e) {
+          ParWork.propegateInterrupt(e);
         } finally {
           if (locked) recoveryLock.unlock();
         }