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 2014/08/22 00:29:12 UTC
svn commit: r1619612 - in /lucene/dev/trunk/solr: ./
core/src/test/org/apache/solr/cloud/
solrj/src/java/org/apache/solr/common/cloud/
test-framework/src/java/org/apache/solr/cloud/
Author: markrmiller
Date: Thu Aug 21 22:29:12 2014
New Revision: 1619612
URL: http://svn.apache.org/r1619612
Log:
SOLR-6400: SolrCloud tests are not properly testing session expiration.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Aug 21 22:29:12 2014
@@ -98,7 +98,24 @@ Other Changes
command and DataImportHandler responses. (ehatcher)
================== 4.11.0 =================
-(No Changes)
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release
+
+Versions of Major Components
+---------------------
+Apache Tika 1.5 (with upgraded Apache POI 3.10.1)
+Carrot2 3.9.0
+Velocity 1.7 and Velocity Tools 2.0
+Apache UIMA 2.3.1
+Apache ZooKeeper 3.4.6
+
+Detailed Change List
+----------------------
+
+Other Changes
+---------------------
+
+* SOLR-6400: SolrCloud tests are not properly testing session expiration. (Mark Miller)
================== 4.10.0 =================
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java Thu Aug 21 22:29:12 2014
@@ -17,8 +17,6 @@ package org.apache.solr.cloud;
* the License.
*/
-import java.io.File;
-
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.ConnectionManager;
@@ -49,10 +47,9 @@ public class ConnectionManagerTest exten
SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), TIMEOUT);
ConnectionManager cm = zkClient.getConnectionManager();
try {
- System.err.println("ISEXPIRED:" + cm.isLikelyExpired());
assertFalse(cm.isLikelyExpired());
-
- zkClient.getSolrZooKeeper().pauseCnxn(TIMEOUT);
+
+ zkClient.getSolrZooKeeper().closeCnxn();
long sessionId = zkClient.getSolrZooKeeper().getSessionId();
server.expire(sessionId);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java Thu Aug 21 22:29:12 2014
@@ -212,7 +212,10 @@ public class LeaderElectionIntegrationTe
String leader = getLeader();
int leaderPort = getLeaderPort(leader);
ZkController zkController = containerMap.get(leaderPort).getZkController();
- zkController.getZkClient().getSolrZooKeeper().pauseCnxn(zkController.getClientTimeout() + 100);
+
+ zkController.getZkClient().getSolrZooKeeper().closeCnxn();
+ long sessionId = zkClient.getSolrZooKeeper().getSessionId();
+ zkServer.expire(sessionId);
for (int i = 0; i < 60; i++) { // wait till leader is changed
if (leaderPort != getLeaderPort(getLeader())) {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java Thu Aug 21 22:29:12 2014
@@ -38,6 +38,7 @@ import org.apache.solr.common.cloud.ZkSt
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.NoNodeException;
+import org.apache.zookeeper.KeeperException.SessionExpiredException;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -252,6 +253,8 @@ public class LeaderElectionTest extends
return leaderProps.getCoreUrl();
} catch (NoNodeException e) {
Thread.sleep(500);
+ } catch (SessionExpiredException e) {
+ Thread.sleep(500);
}
}
zkClient.printLayoutToStdOut();
@@ -482,8 +485,11 @@ public class LeaderElectionTest extends
int j;
j = random().nextInt(threads.size());
try {
- threads.get(j).es.zkClient.getSolrZooKeeper().pauseCnxn(
- ZkTestServer.TICK_TIME * 2);
+ threads.get(j).es.zkClient.getSolrZooKeeper().closeCnxn();
+ if (random().nextBoolean()) {
+ long sessionId = zkClient.getSolrZooKeeper().getSessionId();
+ server.expire(sessionId);
+ }
} catch (Exception e) {
e.printStackTrace();
}
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java Thu Aug 21 22:29:12 2014
@@ -50,12 +50,7 @@ public class SolrZooKeeper extends ZooKe
return testableLocalSocketAddress();
}
- /**
- * Cause this ZooKeeper object to stop receiving from the ZooKeeperServer
- * for the given number of milliseconds.
- * @param ms the number of milliseconds to pause.
- */
- public void pauseCnxn(final long ms) {
+ public void closeCnxn() {
final Thread t = new Thread() {
@Override
public void run() {
@@ -78,10 +73,7 @@ public class SolrZooKeeper extends ZooKe
} catch (Exception e) {
throw new RuntimeException("Closing Zookeeper send channel failed.", e);
}
- Thread.sleep(ms);
}
- } catch (InterruptedException e) {
- // ignore
} finally {
spawnedThreads.remove(this);
}
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java?rev=1619612&r1=1619611&r2=1619612&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java Thu Aug 21 22:29:12 2014
@@ -124,34 +124,12 @@ public class ChaosMonkey {
if (solrDispatchFilter != null) {
CoreContainer cores = solrDispatchFilter.getCores();
if (cores != null) {
- causeConnectionLoss(jetty, cores.getZkController().getClientTimeout() + 200);
+ causeConnectionLoss(jetty);
+ long sessionId = cores.getZkController().getZkClient()
+ .getSolrZooKeeper().getSessionId();
+ zkServer.expire(sessionId);
}
}
-
-
-// Thread thread = new Thread() {
-// {
-// setDaemon(true);
-// }
-// public void run() {
-// SolrDispatchFilter solrDispatchFilter = (SolrDispatchFilter) jetty.getDispatchFilter().getFilter();
-// if (solrDispatchFilter != null) {
-// CoreContainer cores = solrDispatchFilter.getCores();
-// if (cores != null) {
-// try {
-// Thread.sleep(ZkTestServer.TICK_TIME * 2 + 800);
-// } catch (InterruptedException e) {
-// // we act as only connection loss
-// return;
-// }
-// long sessionId = cores.getZkController().getZkClient().getSolrZooKeeper().getSessionId();
-// zkServer.expire(sessionId);
-// }
-// }
-// }
-// };
-// thread.start();
-
}
public void expireRandomSession() throws KeeperException, InterruptedException {
@@ -176,18 +154,13 @@ public class ChaosMonkey {
}
public static void causeConnectionLoss(JettySolrRunner jetty) {
- causeConnectionLoss(jetty, ZkTestServer.TICK_TIME * 2 + 200);
- }
-
- public static void causeConnectionLoss(JettySolrRunner jetty, int pauseTime) {
SolrDispatchFilter solrDispatchFilter = (SolrDispatchFilter) jetty
.getDispatchFilter().getFilter();
if (solrDispatchFilter != null) {
CoreContainer cores = solrDispatchFilter.getCores();
if (cores != null) {
SolrZkClient zkClient = cores.getZkController().getZkClient();
- // must be at least double tick time...
- zkClient.getSolrZooKeeper().pauseCnxn(pauseTime);
+ zkClient.getSolrZooKeeper().closeCnxn();
}
}
}