You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Alan Woodward (JIRA)" <ji...@apache.org> on 2015/11/09 11:47:10 UTC

[jira] [Commented] (SOLR-8255) MiniSolrCloudCluster doesn't use a thread-safe list for its jetties

    [ https://issues.apache.org/jira/browse/SOLR-8255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14996354#comment-14996354 ] 

Alan Woodward commented on SOLR-8255:
-------------------------------------

Simple patch:
{code}
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
index 7f0c548..205ce81 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
@@ -26,11 +26,11 @@ import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.concurrent.Callable;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
@@ -89,7 +89,7 @@ public class MiniSolrCloudCluster {

   private final ZkTestServer zkServer;
   private final boolean externalZkServer;
-  private final List<JettySolrRunner> jettys = new LinkedList<>();
+  private final List<JettySolrRunner> jettys = new CopyOnWriteArrayList<>();
   private final Path baseDir;
   private final CloudSolrClient solrClient;
   private final JettyConfig jettyConfig;
{code}

> MiniSolrCloudCluster doesn't use a thread-safe list for its jetties
> -------------------------------------------------------------------
>
>                 Key: SOLR-8255
>                 URL: https://issues.apache.org/jira/browse/SOLR-8255
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Alan Woodward
>            Assignee: Alan Woodward
>
> MiniSolrCloudCluster uses a LinkedList<> to hold its jetties.  However, multi-threaded startup can break this because the list isn't thread safe.  We should use CopyOnWriteArrayList instead.
> See for example http://jenkins.thetaphi.de/job/Lucene-Solr-trunk-Linux/14819/, which starts up 5 nodes but then only has 4 entries in its jetty list, causing assertion errors and thread leaks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org