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 2020/07/26 18:25:41 UTC
[lucene-solr] branch reference_impl updated: @353 Still needs work.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl by this push:
new 4b7ee6a @353 Still needs work.
4b7ee6a is described below
commit 4b7ee6a865a0cf8d680cafe6371d94c3abc06e74
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Jul 26 13:25:24 2020 -0500
@353 Still needs work.
---
.../org/apache/solr/cloud/overseer/ZkStateWriter.java | 17 +++++++++++------
.../src/test/org/apache/solr/cloud/DeleteNodeTest.java | 2 +-
.../solr/client/solrj/impl/ZkDistribStateManager.java | 7 +++----
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
index ef558b4..975fddc 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
@@ -115,6 +115,7 @@ public class ZkStateWriter {
while (true) {
try {
state = writePendingUpdates(reader.getClusterState());
+
} catch (KeeperException.BadVersionException e) {
prevState = reader.getClusterState();
stats = new Stats();
@@ -177,13 +178,14 @@ public class ZkStateWriter {
Timer.Context timerContext = stats.time("update_state");
boolean success = false;
ClusterState newClusterState = null;
- int prevVersion = -1;
+
try {
// if (!updates.isEmpty()) {
for (Map.Entry<String,DocCollection> entry : updates.entrySet()) {
String name = entry.getKey();
String path = ZkStateReader.getCollectionPath(name);
DocCollection c = entry.getValue();
+ int prevVersion = -1;
Stat stat = new Stat();
try {
@@ -260,9 +262,9 @@ public class ZkStateWriter {
c = newClusterState.getCollection(name);
byte[] data = Utils.toJSON(singletonMap(c.getName(), newCollection));
- if (log.isDebugEnabled()) {
- log.debug("Write state.json bytes={} cs={}", data.length, newClusterState);
- }
+ //if (log.isDebugEnabled()) {
+ log.info("Write state.json prevVersion={} bytes={} cs={}", prevVersion, data.length, newClusterState);
+ //}
// stat = reader.getZkClient().getCurator().setData().withVersion(prevVersion).forPath(path, data);
stat = reader.getZkClient().setData(path, data, prevVersion, true);
} else {
@@ -299,7 +301,7 @@ public class ZkStateWriter {
if (e instanceof KeeperException.BadVersionException) {
// nocommit invalidState = true;
//if (log.isDebugEnabled())
- log.info("Tried to update the cluster state using version={} but we where rejected, currently at {}", prevVersion, ((KeeperException.BadVersionException) e).getMessage(), e);
+ log.info("Tried to update the cluster state using version={} but we where rejected, currently at {}", prevVersion, c == null ? "null" : c.getZNodeVersion(), e);
throw (KeeperException.BadVersionException) e;
}
ParWork.propegateInterrupt(e);
@@ -338,7 +340,10 @@ public class ZkStateWriter {
success = true;
} catch (KeeperException.BadVersionException bve) {
// this is a tragic error, we must disallow usage of this instance
- log.warn("Tried to update the cluster state using version={} but we where rejected as the version is {}", newClusterState.getZNodeVersion(), bve.getMessage(), bve);
+ log.warn("Tried to update the cluster state using version={} but we where rejected", newClusterState.getZNodeVersion(), bve);
+
+
+
// nocommit invalidState = true;
throw bve;
} finally {
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
index 7941e55..5c5cca5 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
@@ -70,7 +70,7 @@ public class DeleteNodeTest extends SolrCloudTestCase {
CollectionAdminRequest.createCollection(coll, "conf1", 5, 1, 0, 0),
CollectionAdminRequest.createCollection(coll, "conf1", 5, 0, 1, 0)
);
- create.setCreateNodeSet(StrUtils.join(l, ',')).setMaxShardsPerNode(3);
+ create.setCreateNodeSet(StrUtils.join(l, ',')).setMaxShardsPerNode(10);
cloudClient.request(create);
state = cloudClient.getZkStateReader().getClusterState();
String node2bdecommissioned = l.get(0);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java
index a8225b7..529049a 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java
@@ -108,13 +108,12 @@ public class ZkDistribStateManager implements DistribStateManager {
@Override
public void makePath(String path, byte[] data, CreateMode createMode, boolean failOnExists) throws AlreadyExistsException, IOException, KeeperException, InterruptedException {
- if (path.equals("/collections/collection1/terms")) {
- // throw new IllegalArgumentException();
- }
try {
zkClient.mkdir(path, data, createMode);
} catch (KeeperException.NodeExistsException e) {
- throw new AlreadyExistsException(path);
+ if (failOnExists) {
+ throw new AlreadyExistsException(path);
+ }
}
}