You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2017/01/28 17:20:58 UTC

[1/4] lucene-solr:jira/solr-8593: SOLR-9983: fixing TestManagedSchemaThreadSafety NPE failure.

Repository: lucene-solr
Updated Branches:
  refs/heads/jira/solr-8593 934a92e73 -> a9bdfdec1


SOLR-9983: fixing TestManagedSchemaThreadSafety NPE failure.

Also testing session expiration and set sensible Zookeeper connection
timeout.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/d9741205
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/d9741205
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/d9741205

Branch: refs/heads/jira/solr-8593
Commit: d9741205b5a39a5d0d4f63698adfcabe0a6a5892
Parents: 0187838
Author: Mikhail Khludnev <mk...@apache.org>
Authored: Fri Jan 20 23:07:42 2017 +0300
Committer: Mikhail Khludnev <mk...@apache.org>
Committed: Sat Jan 28 00:09:08 2017 +0300

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  3 ++
 .../org/apache/solr/cloud/MockZkController.java | 36 ++++++++++++++++++++
 .../schema/TestManagedSchemaThreadSafety.java   | 32 ++++++++++++++---
 3 files changed, 67 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d9741205/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 25d8cc9..ddff48f 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -140,6 +140,9 @@ Other Changes
 * SOLR-9972: SpellCheckComponent collations and suggestions returned as a JSON object rather than a list
   (Christine Poerschke in response to bug report from Ricky Oktavianus Lazuardy)
 
+* SOLR-9996: Fixing NullPointerException failure by TestManagedSchemaThreadSafety 
+  adding check for Zookeeper session expiration (Steve Rowe, Mikhail Khludnev)
+
 ==================  6.4.1 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d9741205/solr/core/src/test/org/apache/solr/cloud/MockZkController.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/MockZkController.java b/solr/core/src/test/org/apache/solr/cloud/MockZkController.java
new file mode 100644
index 0000000..ac64f50
--- /dev/null
+++ b/solr/core/src/test/org/apache/solr/cloud/MockZkController.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.cloud;
+
+import java.io.IOException;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.solr.core.CloudConfig;
+import org.apache.solr.core.CoreContainer;
+
+public class MockZkController extends ZkController {
+
+  public MockZkController(CoreContainer cc, String zkServerAddress, int zkClientConnectTimeout, CloudConfig cloudConfig,
+      CurrentCoreDescriptorProvider registerOnReconnect) throws InterruptedException, TimeoutException, IOException {
+    super(cc, zkServerAddress, zkClientConnectTimeout, cloudConfig, registerOnReconnect);
+  }
+
+  @Override
+  public CoreContainer getCoreContainer() {
+    return super.getCoreContainer();
+  }
+}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d9741205/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
index e4a5c48..a00129a 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
@@ -28,17 +28,20 @@ import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.cloud.MockZkController;
 import org.apache.solr.cloud.ZkController;
 import org.apache.solr.cloud.ZkSolrResourceLoader;
 import org.apache.solr.cloud.ZkTestServer;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrConfig;
 import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.util.LogLevel;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.KeeperException.NoNodeException;
+import org.apache.zookeeper.KeeperException.SessionExpiredException;
 import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.data.Stat;
 import org.junit.AfterClass;
@@ -106,14 +109,14 @@ public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
 
     final String configsetName = "managed-config";//
 
-    try (SolrZkClient client = new SuspendingZkClient(zkServer.getZkHost(), 30)) {
+    try (SolrZkClient client = new SuspendingZkClient(zkServer.getZkHost(), 30000)) {
       // we can pick any to load configs, I suppose, but here we check
       client.upConfig(configset("cloud-managed-upgrade"), configsetName);
     }
 
     ExecutorService executor = ExecutorUtil.newMDCAwareCachedThreadPool("threadpool");
     
-    try (SolrZkClient raceJudge = new SuspendingZkClient(zkServer.getZkHost(), 30)) {
+    try (SolrZkClient raceJudge = new SuspendingZkClient(zkServer.getZkHost(), 30000)) {
 
       ZkController zkController = createZkController(raceJudge);
 
@@ -132,14 +135,35 @@ public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
   }
 
   private ZkController createZkController(SolrZkClient client) throws KeeperException, InterruptedException {
-    ZkController zkController = mock(ZkController.class,
+    
+    CoreContainer mockAlwaysUpCoreContainer = mock(CoreContainer.class, 
+        Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
+    when(mockAlwaysUpCoreContainer.isShutDown()).thenReturn(Boolean.FALSE);  // Allow retry on session expiry
+    
+    
+    MockZkController zkController = mock(MockZkController.class,
         Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
 
+    when(zkController.getCoreContainer()).thenReturn(mockAlwaysUpCoreContainer);
+
     when(zkController.getZkClient()).thenReturn(client);
     Mockito.doAnswer(new Answer<Boolean>() {
+      volatile boolean sessionExpired=false;
+      
       @Override
       public Boolean answer(InvocationOnMock invocation) throws Throwable {
-        return client.exists((String) invocation.getArguments()[0], true);
+        String path = (String) invocation.getArguments()[0];
+        perhapsExpired();
+        Boolean exists = client.exists(path, true);
+        perhapsExpired();
+        return exists;
+      }
+
+      private void perhapsExpired() throws SessionExpiredException {
+        if (!sessionExpired && rarely()) {
+          sessionExpired = true;
+          throw new KeeperException.SessionExpiredException();
+        }
       }
     }).when(zkController).pathExists(Mockito.anyString());
     return zkController;


[2/4] lucene-solr:jira/solr-8593: SOLR-9983: fixing CHANGES.txt

Posted by kr...@apache.org.
SOLR-9983: fixing CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/00065e0b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/00065e0b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/00065e0b

Branch: refs/heads/jira/solr-8593
Commit: 00065e0b5408dc8244f9ee6eecdaf3634f6f8372
Parents: d974120
Author: Mikhail Khludnev <mk...@apache.org>
Authored: Sat Jan 28 15:44:34 2017 +0300
Committer: Mikhail Khludnev <mk...@apache.org>
Committed: Sat Jan 28 15:45:59 2017 +0300

----------------------------------------------------------------------
 solr/CHANGES.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/00065e0b/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ddff48f..3b23570 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -140,7 +140,7 @@ Other Changes
 * SOLR-9972: SpellCheckComponent collations and suggestions returned as a JSON object rather than a list
   (Christine Poerschke in response to bug report from Ricky Oktavianus Lazuardy)
 
-* SOLR-9996: Fixing NullPointerException failure by TestManagedSchemaThreadSafety 
+* SOLR-9983: Fixing NullPointerException failure by TestManagedSchemaThreadSafety 
   adding check for Zookeeper session expiration (Steve Rowe, Mikhail Khludnev)
 
 ==================  6.4.1 ==================


[3/4] lucene-solr:jira/solr-8593: SOLR-8491: solr.cmd SOLR_SSL_OPTS is overwritten

Posted by kr...@apache.org.
SOLR-8491: solr.cmd SOLR_SSL_OPTS is overwritten


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/bb5bf3fb
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/bb5bf3fb
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/bb5bf3fb

Branch: refs/heads/jira/solr-8593
Commit: bb5bf3fbf733b2dcea1163cad7a70a6437ece93f
Parents: 00065e0
Author: Kevin Risden <kr...@apache.org>
Authored: Fri Jan 27 16:10:41 2017 -0500
Committer: Kevin Risden <kr...@apache.org>
Committed: Sat Jan 28 12:11:44 2017 -0500

----------------------------------------------------------------------
 solr/CHANGES.txt  |  1 +
 solr/bin/solr.cmd | 40 ++++++++++++++++++++--------------------
 2 files changed, 21 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/bb5bf3fb/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 3b23570..e93e468 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -159,6 +159,7 @@ Jetty 9.3.14.v20161028
 Bug Fixes
 ----------------------
 * SOLR-9969: "Plugin/Stats" section of the UI doesn't display empty metric types (Tom�s Fern�ndez L�bbe)
+* SOLR-8491: solr.cmd SOLR_SSL_OPTS is overwritten (Sam Yi, Andy Hind, Marcel Berteler, Kevin Risden)
 
 ==================  6.4.0 ==================
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/bb5bf3fb/solr/bin/solr.cmd
----------------------------------------------------------------------
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index 732c2de..65f2a57 100644
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -45,71 +45,71 @@ set "SOLR_SSL_OPTS= "
 IF DEFINED SOLR_SSL_KEY_STORE (
   set "SOLR_JETTY_CONFIG=--module=https"
   set SOLR_URL_SCHEME=https
-  set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.keystore=%SOLR_SSL_KEY_STORE%"
+  set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.keystore=%SOLR_SSL_KEY_STORE%"
   IF DEFINED SOLR_SSL_KEY_STORE_PASSWORD (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.keystore.password=%SOLR_SSL_KEY_STORE_PASSWORD%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.keystore.password=%SOLR_SSL_KEY_STORE_PASSWORD%"
   )
   IF DEFINED SOLR_SSL_KEY_STORE_TYPE (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.keystore.type=%SOLR_SSL_KEY_STORE_TYPE%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.keystore.type=%SOLR_SSL_KEY_STORE_TYPE%"
   )
 
   IF DEFINED SOLR_SSL_TRUST_STORE (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.truststore=%SOLR_SSL_TRUST_STORE%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.truststore=%SOLR_SSL_TRUST_STORE%"
   )
   IF DEFINED SOLR_SSL_TRUST_STORE_PASSWORD (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.truststore.password=%SOLR_SSL_TRUST_STORE_PASSWORD%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.truststore.password=%SOLR_SSL_TRUST_STORE_PASSWORD%"
   )
   IF DEFINED SOLR_SSL_TRUST_STORE_TYPE (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.truststore.type=%SOLR_SSL_TRUST_STORE_TYPE%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.truststore.type=%SOLR_SSL_TRUST_STORE_TYPE%"
   )
 
   IF DEFINED SOLR_SSL_NEED_CLIENT_AUTH (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.ssl.needClientAuth=%SOLR_SSL_NEED_CLIENT_AUTH%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.ssl.needClientAuth=%SOLR_SSL_NEED_CLIENT_AUTH%"
   )
   IF DEFINED SOLR_SSL_WANT_CLIENT_AUTH (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Dsolr.jetty.ssl.wantClientAuth=%SOLR_SSL_WANT_CLIENT_AUTH%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Dsolr.jetty.ssl.wantClientAuth=%SOLR_SSL_WANT_CLIENT_AUTH%"
   )
 
   IF DEFINED SOLR_SSL_CLIENT_KEY_STORE (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStore=%SOLR_SSL_CLIENT_KEY_STORE%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStore=%SOLR_SSL_CLIENT_KEY_STORE%"
 
     IF DEFINED SOLR_SSL_CLIENT_KEY_STORE_PASSWORD (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStorePassword=%SOLR_SSL_CLIENT_KEY_STORE_PASSWORD%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStorePassword=%SOLR_SSL_CLIENT_KEY_STORE_PASSWORD%"
     )
     IF DEFINED SOLR_SSL_CLIENT_KEY_STORE_TYPE (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStoreType=%SOLR_SSL_CLIENT_KEY_STORE_TYPE%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStoreType=%SOLR_SSL_CLIENT_KEY_STORE_TYPE%"
     )
   ) ELSE (
     IF DEFINED SOLR_SSL_KEY_STORE (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStore=%SOLR_SSL_KEY_STORE%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStore=%SOLR_SSL_KEY_STORE%"
     )
     IF DEFINED SOLR_SSL_KEY_STORE_PASSWORD (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStorePassword=%SOLR_SSL_KEY_STORE_PASSWORD%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStorePassword=%SOLR_SSL_KEY_STORE_PASSWORD%"
     )
     IF DEFINED SOLR_SSL_KEY_STORE_TYPE (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.keyStoreType=%SOLR_SSL_KEY_STORE_TYPE%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.keyStoreType=%SOLR_SSL_KEY_STORE_TYPE%"
     )
   )
 
   IF DEFINED SOLR_SSL_CLIENT_TRUST_STORE (
-    set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStore=%SOLR_SSL_CLIENT_TRUST_STORE%"
+    set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStore=%SOLR_SSL_CLIENT_TRUST_STORE%"
 
     IF DEFINED SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStorePassword=%SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStorePassword=%SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD%"
     )
 
     IF DEFINED SOLR_SSL_CLIENT_TRUST_STORE_TYPE (
-      set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStoreType=%SOLR_SSL_CLIENT_TRUST_STORE_TYPE%"
+      set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStoreType=%SOLR_SSL_CLIENT_TRUST_STORE_TYPE%"
     )
   ) ELSE (
     IF DEFINED SOLR_SSL_TRUST_STORE (
-     set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStore=%SOLR_SSL_TRUST_STORE%"
+     set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStore=%SOLR_SSL_TRUST_STORE%"
     )
     IF DEFINED SOLR_SSL_TRUST_STORE_PASSWORD (
-     set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStorePassword=%SOLR_SSL_TRUST_STORE_PASSWORD%"
+     set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStorePassword=%SOLR_SSL_TRUST_STORE_PASSWORD%"
     )
     IF DEFINED SOLR_SSL_TRUST_STORE_TYPE (
-     set "SOLR_SSL_OPTS=%SOLR_SSL_OPTS% -Djavax.net.ssl.trustStoreType=%SOLR_SSL_TRUST_STORE_TYPE%"
+     set "SOLR_SSL_OPTS=!SOLR_SSL_OPTS! -Djavax.net.ssl.trustStoreType=%SOLR_SSL_TRUST_STORE_TYPE%"
     )
   )
 ) ELSE (


[4/4] lucene-solr:jira/solr-8593: Merge branch 'apache-https-master' into jira/solr-8593

Posted by kr...@apache.org.
Merge branch 'apache-https-master' into jira/solr-8593


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a9bdfdec
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a9bdfdec
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a9bdfdec

Branch: refs/heads/jira/solr-8593
Commit: a9bdfdec109abf410502b3804db4161abd33caf9
Parents: 934a92e bb5bf3f
Author: Kevin Risden <kr...@apache.org>
Authored: Sat Jan 28 12:20:51 2017 -0500
Committer: Kevin Risden <kr...@apache.org>
Committed: Sat Jan 28 12:20:51 2017 -0500

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  4 ++
 solr/bin/solr.cmd                               | 40 ++++++++++----------
 .../org/apache/solr/cloud/MockZkController.java | 36 ++++++++++++++++++
 .../schema/TestManagedSchemaThreadSafety.java   | 32 ++++++++++++++--
 4 files changed, 88 insertions(+), 24 deletions(-)
----------------------------------------------------------------------