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 2021/02/01 23:52:46 UTC
[lucene-solr] 01/04: @1296 Make the reload lock fair again - think
call can return too early.
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
commit 949c62b36561ce60e5e945739b74334e85828fc0
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Jan 31 16:29:23 2021 -0600
@1296 Make the reload lock fair again - think call can return too early.
---
solr/core/src/java/org/apache/solr/core/SolrCore.java | 2 +-
solr/core/src/java/org/apache/solr/update/SolrCoreState.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index c4eb8d3..193cbb7 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -736,7 +736,7 @@ public final class SolrCore implements SolrInfoBean, Closeable {
reloadyWaiting.incrementAndGet();
log.info("Wait for reload lock");
- while (!lock.tryLock(250, TimeUnit.MILLISECONDS)) {
+ while (!(lock.tryLock() || lock.tryLock(250, TimeUnit.MILLISECONDS))) {
if (coreContainer.isShutDown() || isClosed() || closing) {
log.warn("Skipping reload because we are closed");
reloadyWaiting.decrementAndGet();
diff --git a/solr/core/src/java/org/apache/solr/update/SolrCoreState.java b/solr/core/src/java/org/apache/solr/update/SolrCoreState.java
index b0885ef..aa94268 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrCoreState.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrCoreState.java
@@ -44,7 +44,7 @@ public abstract class SolrCoreState {
protected volatile boolean closed = false;
private final Object updateLock = new Object();
- private final ReentrantLock reloadLock = new ReentrantLock(false);
+ private final ReentrantLock reloadLock = new ReentrantLock(true);
public Object getUpdateLock() {
return updateLock;