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 2012/08/30 14:19:11 UTC
svn commit: r1378904 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
Author: markrmiller
Date: Thu Aug 30 12:19:10 2012
New Revision: 1378904
URL: http://svn.apache.org/viewvc?rev=1378904&view=rev
Log:
SOLR-3721: Fix bug that could allow multiple recoveries to run briefly at the same time if the recovery thread join call was interrupted.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1378904&r1=1378903&r2=1378904&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Aug 30 12:19:10 2012
@@ -90,6 +90,10 @@ Bug Fixes
* SOLR-3770: Overseer may lose updates to cluster state (siren)
+* SOLR-3721: Fix bug that could allow multiple recoveries to run briefly at
+ the same time if the recovery thread join call was interrupted.
+ (Per Steffensen, Mark Miller)
+
Other Changes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java?rev=1378904&r1=1378903&r2=1378904&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java Thu Aug 30 12:19:10 2012
@@ -242,10 +242,14 @@ public final class DefaultSolrCoreState
synchronized (recoveryLock) {
if (recoveryStrat != null) {
recoveryStrat.close();
- try {
- recoveryStrat.join();
- } catch (InterruptedException e) {
-
+ while (true) {
+ try {
+ recoveryStrat.join();
+ } catch (InterruptedException e) {
+ // not interruptible - keep waiting
+ continue;
+ }
+ break;
}
recoveryRunning = false;