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 2021/03/09 23:26:49 UTC
[lucene-solr] branch reference_impl updated (5d16e5e -> cf45866)
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a change to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.
discard 5d16e5e @1424 Return a few things that were tmp out but needed.
discard 68880c4 @1423 Whoops, this should be ignored for now.
discard 27a6cf5 @1422 Address a few more things - I still lost something, but a little back.
discard 063522c @1421 Clean up the last commit.
add 0cd05a2 @1421 Clean up the last commit.
add 86cc0b6 @1422 Address a few more things - I still lost something, but a little back.
add 52841e0 @1423 Whoops, this should be ignored for now.
add 92a3e27 @1424 Return a few things that were tmp out but needed.
add eabf703 @1425 Fix NPE.
add 065d133 @1426 Raise timeout.
add a992bb1 @1427 Fix NPE.
add ec1ef12 @1428 Tweak cache.
add f4ac647 @1429 Fixes.
add c67186b @1430 Extra stop on watch and debug.
add 3ed5d3b @1431 std lazy fetch again.
add 3aac5f1 @1432 Start putting in the keystone.
add 35104f0 @1433 Work out a silly little bug that sent me all over creation.
new 075f034 @1434 Couple tweaks around state updates.
new a7ab3bd @1435 Debug logging off.
new fd720f8 @1436 Tweaks and put in the wrong node error again.
new cf45866 @1437 State publish cache back in.
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (5d16e5e)
\
N -- N -- N refs/heads/reference_impl (cf45866)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../src/java/org/apache/solr/cloud/Overseer.java | 299 +++++++---------
.../org/apache/solr/cloud/OverseerTaskQueue.java | 40 ++-
.../org/apache/solr/cloud/RecoveryStrategy.java | 14 +-
.../solr/cloud/ShardLeaderElectionContextBase.java | 15 +-
.../java/org/apache/solr/cloud/StatePublisher.java | 55 ++-
.../java/org/apache/solr/cloud/ZkController.java | 107 +++---
.../java/org/apache/solr/cloud/ZkShardTerms.java | 18 +-
.../apache/solr/cloud/ZkSolrResourceLoader.java | 4 +-
.../solr/cloud/api/collections/AddReplicaCmd.java | 82 +++--
.../apache/solr/cloud/api/collections/Assign.java | 62 +---
.../cloud/api/collections/CreateCollectionCmd.java | 31 +-
.../cloud/api/collections/DeleteCollectionCmd.java | 40 +--
.../cloud/api/collections/DeleteReplicaCmd.java | 8 +-
.../solr/cloud/api/collections/MigrateCmd.java | 2 +-
.../solr/cloud/api/collections/MoveReplicaCmd.java | 2 +-
.../OverseerCollectionMessageHandler.java | 32 +-
.../solr/cloud/api/collections/SplitShardCmd.java | 13 +-
.../solr/cloud/overseer/CollectionMutator.java | 2 +-
.../apache/solr/cloud/overseer/SliceMutator.java | 18 +-
.../apache/solr/cloud/overseer/ZkStateWriter.java | 389 +++++++++++---------
.../src/java/org/apache/solr/core/CloudConfig.java | 4 +-
.../java/org/apache/solr/core/CoreContainer.java | 29 +-
.../src/java/org/apache/solr/core/SolrCore.java | 5 +-
.../src/java/org/apache/solr/core/SolrCores.java | 29 +-
.../solr/core/snapshots/SolrSnapshotManager.java | 6 +-
.../org/apache/solr/filestore/PackageStoreAPI.java | 2 +-
.../org/apache/solr/handler/admin/ColStatus.java | 2 +-
.../solr/handler/admin/CollectionsHandler.java | 2 -
.../solr/handler/admin/CoreAdminOperation.java | 13 +-
.../apache/solr/handler/admin/PrepRecoveryOp.java | 42 ++-
.../handler/component/RealTimeGetComponent.java | 24 +-
.../solr/handler/component/SearchHandler.java | 3 +-
.../apache/solr/rest/ManagedResourceStorage.java | 2 +-
.../solr/rest/schema/FieldTypeXmlAdapter.java | 2 +-
.../solr/schema/ManagedIndexSchemaFactory.java | 4 +-
.../java/org/apache/solr/servlet/HttpSolrCall.java | 39 ++-
.../processor/DistributedZkUpdateProcessor.java | 99 ++++--
.../processor/RoutedAliasUpdateProcessor.java | 23 +-
.../update/processor/TolerantUpdateProcessor.java | 9 +-
.../org/apache/solr/cloud/CollectionPropsTest.java | 6 +-
.../apache/solr/cloud/CollectionsAPISolrJTest.java | 4 +-
.../solr/cloud/FullSolrCloudDistribCmdsTest.java | 5 +-
.../org/apache/solr/cloud/MoveReplicaTest.java | 10 +-
.../apache/solr/cloud/SolrCloudBridgeTestCase.java | 4 +-
.../test/org/apache/solr/cloud/SyncSliceTest.java | 11 +-
.../org/apache/solr/cloud/TestCloudRecovery.java | 22 +-
.../org/apache/solr/cloud/TestPullReplica.java | 58 ++-
.../cloud/TestTolerantUpdateProcessorCloud.java | 3 +-
.../TestTolerantUpdateProcessorRandomCloud.java | 1 -
.../apache/solr/cloud/UnloadDistributedZkTest.java | 7 +-
.../org/apache/solr/cloud/ZkShardTermsTest.java | 6 +-
.../CollectionsAPIAsyncDistributedZkTest.java | 11 +-
.../CollectionsAPIDistClusterPerZkTest.java | 10 +-
.../ConcurrentDeleteAndCreateCollectionTest.java | 37 +-
.../CreateCollectionsIndexAndRestartTest.java | 14 +-
.../TestCollectionsAPIViaSolrCloudCluster.java | 9 +-
.../solr/handler/component/SearchHandlerTest.java | 1 +
solr/server/resources/log4j2.xml | 4 -
.../client/solrj/impl/BaseCloudSolrClient.java | 2 +-
.../solr/client/solrj/impl/HttpClientUtil.java | 2 +-
.../client/solrj/impl/ZkDistribStateManager.java | 2 +-
.../org/apache/solr/common/cloud/ClusterState.java | 10 +-
.../solr/common/cloud/ConnectionManager.java | 15 +-
.../apache/solr/common/cloud/DocCollection.java | 25 +-
.../solr/common/cloud/ImplicitDocRouter.java | 21 +-
.../java/org/apache/solr/common/cloud/Replica.java | 2 +-
.../java/org/apache/solr/common/cloud/Slice.java | 48 ++-
.../org/apache/solr/common/cloud/SolrZkClient.java | 42 ++-
.../apache/solr/common/cloud/ZkCmdExecutor.java | 20 +-
.../solr/common/cloud/ZkMaintenanceUtils.java | 4 +-
.../apache/solr/common/cloud/ZkStateReader.java | 390 ++++++++++++---------
.../src/java/org/apache/solr/SolrTestCase.java | 12 +-
.../src/java/org/apache/solr/SolrTestCaseJ4.java | 1 +
.../java/org/apache/solr/util/BaseTestHarness.java | 3 +-
.../src/resources/logconf/log4j2-startup-debug.xml | 3 +
75 files changed, 1334 insertions(+), 1063 deletions(-)
[lucene-solr] 02/04: @1435 Debug logging off.
Posted by ma...@apache.org.
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
commit a7ab3bde822a7e8150ab8ce1e822fbfd652e045a
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Mar 9 15:16:43 2021 -0600
@1435 Debug logging off.
Took 19 seconds
---
solr/server/resources/log4j2.xml | 44 ++++++++--------------------------------
1 file changed, 9 insertions(+), 35 deletions(-)
diff --git a/solr/server/resources/log4j2.xml b/solr/server/resources/log4j2.xml
index 71746b2..285c782 100644
--- a/solr/server/resources/log4j2.xml
+++ b/solr/server/resources/log4j2.xml
@@ -98,47 +98,21 @@
</Appenders>
<Loggers>
- <AsyncLogger name="org.apache.solr.servlet.HttpSolrCall" level="DEBUG"/>
+ <AsyncLogger name="org.eclipse.jetty.servlets" level="WARN"/>
+ <AsyncLogger name="org.eclipse.jetty" level="WARN"/>
+ <AsyncLogger name="org.eclipse.jetty.server.Server" level="WARN"/>
+ <AsyncLogger name="org.apache.hadoop" level="WARN"/>
<AsyncLogger name="org.apache.zookeeper" level="WARN"/>
<AsyncLogger name="org.apache.zookeeper.ClientCnxn" level="ERROR"/>
<AsyncLogger name="org.apache.zookeeper.server.ZooKeeperCriticalThread" level="OFF"/>
- <AsyncLogger name="org.apache.hadoop" level="WARN"/>
- <AsyncLogger name="org.apache.directory" level="WARN"/>
- <AsyncLogger name="org.apache.solr.hadoop" level="INFO"/>
- <AsyncLogger name="org.eclipse.jetty" level="INFO"/>
- <AsyncLogger name="org.apache.solr.core.SolrCore" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.handler.admin.CollectionsHandler" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.handler.IndexFetcher" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.api.collections.CreateCollectionCmd" level="DEBUG"/>
- <!-- <AsyncLogger name="org.apache.solr.common.patterns.DW" level="DEBUG"/> -->
- <AsyncLogger name="org.apache.solr.cloud.overseer.ZkStateWriter" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.Overseer" level="DEBUG"/>
- <!-- <AsyncLogger name="org.apache.solr.cloud.OverseerTaskProcessor" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.ZkDistributedQueue" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.OverseerTaskQueue" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.OverseerTaskExecutorTask" level="DEBUG"/>-->
- <AsyncLogger name="org.apache.solr.cloud.LeaderElector" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.ShardLeaderElectionContextBase" level="DEBUG"/>
-
- <!-- <AsyncLogger name="org.apache.solr.common.cloud.SolrZkClient" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.overseer.SliceMutator" level="DEBUG"/>-->
- <AsyncLogger name="org.apache.solr.client.solrj.impl.LBSolrClient" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.cloud.ZkController" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.common.cloud.ZkStateReader" level="DEBUG"/>
-
- <AsyncLogger name="org.apache.solr.core.SolrCore" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.common.cloud.ZkMaintenanceUtils" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.update.processor.DistributedZkUpdateProcessor" level="DEBUG"/>
- <AsyncLogger name="org.apache.solr.update.processor.DistributedUpdateProcessor" level="DEBUG"/>
-
- <AsyncLogger name="org.apache.solr.client.solrj.impl.Http2SolrClient" level="TRACE"/>
-
- <AsyncLogger name="com.google.inject.servlet" level="DEBUG"/>
+ <AsyncLogger name="org.apache.solr.update.processor.LogUpdateProcessorFactory" level="WARN"/>
<AsyncLogger name="org.apache.solr.update.LoggingInfoStream" level="OFF"/>
+ <AsyncLogger name="org.apache.solr.core.SolrCore.SlowRequest" level="INFO" additivity="false">
+ <AppenderRef ref="SlowLogFile"/>
+ </AsyncLogger>
- <AsyncRoot level="DEBUG">
+ <AsyncRoot level="INFO">
<AppenderRef ref="${appenderToUse}"/>
</AsyncRoot>
</Loggers>
[lucene-solr] 04/04: @1437 State publish cache back in.
Posted by ma...@apache.org.
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
commit cf458663a91a5432f1a2d13edb91603c93c97d6c
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Mar 9 17:26:18 2021 -0600
@1437 State publish cache back in.
Took 10 minutes
Took 3 minutes
---
.../java/org/apache/solr/cloud/StatePublisher.java | 28 ++++++++++--------
.../java/org/apache/solr/cloud/ZkController.java | 2 ++
.../apache/solr/cloud/overseer/ZkStateWriter.java | 33 ++++++----------------
.../processor/DistributedZkUpdateProcessor.java | 2 +-
.../src/java/org/apache/solr/SolrTestCaseJ4.java | 1 +
5 files changed, 30 insertions(+), 36 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/StatePublisher.java b/solr/core/src/java/org/apache/solr/cloud/StatePublisher.java
index b332fc8..880045f 100644
--- a/solr/core/src/java/org/apache/solr/cloud/StatePublisher.java
+++ b/solr/core/src/java/org/apache/solr/cloud/StatePublisher.java
@@ -22,6 +22,7 @@ import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
+import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.util.Utils;
@@ -212,6 +213,11 @@ public class StatePublisher implements Closeable {
String collection = stateMessage.getStr(ZkStateReader.COLLECTION_PROP);
String state = stateMessage.getStr(ZkStateReader.STATE_PROP);
+ if (core == null || state == null) {
+ log.error("Nulls in published state");
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Nulls in published state " + stateMessage);
+ }
+
if ((state.equals(UpdateLog.State.ACTIVE.toString().toLowerCase(Locale.ROOT)) || state.equals("leader")) && cc.isCoreLoading(core)) {
cc.waitForLoadingCore(core, 10000);
}
@@ -224,17 +230,13 @@ public class StatePublisher implements Closeable {
} else {
id = stateMessage.getStr("id");
}
- // MRM TODO: this needs thought and work - what about session recovery? what about zkshardterm recovery?
-// CacheEntry lastState = stateCache.get(id);
-// if (collection != null && replica != null && (System.currentTimeMillis() - lastState.time < 1000) && !state.equals(lastState.state) && replica.getState().toString().equals(state)) {
-// log.info("Skipping publish state as {} for {}, because it was the last state published", state, core);
-// return;
-// }
- }
- if (core == null || state == null) {
- log.error("Nulls in published state");
- throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Nulls in published state " + stateMessage);
+ CacheEntry lastState = stateCache.get(id);
+ //&& (System.currentTimeMillis() - lastState.time < 1000) &&
+ if (!state.equals("leader") && collection != null && lastState != null && replica != null && !state.equals(lastState.state) && replica.getState().toString().equals(state)) {
+ log.info("Skipping publish state as {} for {}, because it was the last state published", state, core);
+ return;
+ }
}
if (id == null) {
@@ -297,7 +299,11 @@ public class StatePublisher implements Closeable {
}
public void clearStatCache(String core) {
- // stateCache.remove(core);
+ stateCache.remove(core);
+ }
+
+ public void clearStatCache() {
+ stateCache.clear();
}
public void start() {
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index 9f69564..c205778 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -447,6 +447,8 @@ public class ZkController implements Closeable, Runnable {
removeEphemeralLiveNode();
+ statePublisher.clearStatCache();
+
// recreate our watchers first so that they exist even on any problems below
zkStateReader.createClusterStateWatchersAndUpdate();
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 20c4f55..06675de 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
@@ -112,35 +112,22 @@ public class ZkStateWriter {
throw new NullPointerException("clusterState cannot be null");
}
-
clusterState.forEachCollection(collection -> {
- idToCollection.put(collection.getId(), collection.getName());
-// if (trackVersions.get(collection.getName()) == null) {
-// DocCollection latestColl = reader.getClusterState().getCollectionOrNull(collection.getName()).copy();
-//
-// if (latestColl == null) {
-// reader.forciblyRefreshClusterStateSlow(collection.getName());
-// latestColl = reader.getClusterState().getCollectionOrNull(collection.getName()).copy();
-// }
-//
-// if (latestColl == null) {
-// //log.info("no node exists, using version 0");
-// trackVersions.remove(collection.getName());
-// } else {
-// int version = latestColl.getZNodeVersion();
-//
-// log.debug("Updating local tracked version to {} for {}", version, collection.getName());
-// trackVersions.put(collection.getName(), version);
-// }
-// }
-
DocCollection currentCollection = cs.getCollectionOrNull(collection.getName());
log.debug("zkwriter collection={}", collection);
log.debug("zkwriter currentCollection={}", currentCollection);
+ idToCollection.put(collection.getId(), collection.getName());
+
+ if (currentCollection != null) {
+ if (currentCollection.getId() != collection.getId()) {
+ removeCollection(collection.getName());
+ }
+ }
+
+ if (currentCollection != null) {
- if (currentCollection != null && currentCollection.getId() == collection.getId()) {
currentCollection.getProperties().keySet().retainAll(collection.getProperties().keySet());
for (Slice slice : collection) {
@@ -612,8 +599,6 @@ public class ZkStateWriter {
cs.getCollectionStates().remove(collection);
assignMap.remove(collection);
trackVersions.remove(collection);
- reader.getZkClient().delete(ZkStateReader.getCollectionSCNPath(collection), -1, true, false);
- reader.getZkClient().delete(ZkStateReader.getCollectionStateUpdatesPath(collection), -1, true, false);
dirtyStructure.remove(collection);
dirtyState.remove(collection);
ZkNodeProps message = new ZkNodeProps("name", collection);
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
index 2a7701d..b5ce87c 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
@@ -524,7 +524,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
String sliceName = slice.getName();
Replica leader;
try {
- leader = zkController.getZkStateReader().getLeaderRetry(collection, sliceName);
+ leader = zkController.getZkStateReader().getLeaderRetry(collection, sliceName, 10000);
} catch (Exception e) {
throw new SolrException(ErrorCode.SERVER_ERROR, "error getting leader", e);
}
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index d11471c..228b60b 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -2314,6 +2314,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
return new ConcurrentUpdateSolrClient.Builder(baseSolrUrl)
.withQueueSize(queueSize)
.withThreadCount(threadCount)
+ .withSocketTimeout(120000)
.build();
}
[lucene-solr] 03/04: @1436 Tweaks and put in the wrong node error
again.
Posted by ma...@apache.org.
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
commit fd720f82818ba84a9305a4771b8e511a83dbd8b7
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Mar 9 15:50:09 2021 -0600
@1436 Tweaks and put in the wrong node error again.
Took 15 minutes
---
.../src/java/org/apache/solr/cloud/ZkController.java | 16 ++++++++--------
.../collections/OverseerCollectionMessageHandler.java | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index c51a308..9f69564 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -1256,14 +1256,14 @@ public class ZkController implements Closeable, Runnable {
log.info("Register SolrCore, core={} baseUrl={} collection={}, shard={}", coreName, baseUrl, collection, shardId);
-// DocCollection coll = zkStateReader.getClusterState().getCollectionOrNull(collection);
-// if (coll != null) {
-// Replica replica = coll.getReplica(coreName);
-// if (replica != null && !baseUrl.equals(replica.getBaseUrl())) {
-// log.error("wrong base url for this node in replica entry replica={}", replica);
-// throw new SolrException(ErrorCode.SERVER_ERROR, "wrong base url for this node in replica entry baseUrl=" + baseUrl + " replica=" + replica);
-// }
-// }
+ DocCollection docCollection = zkStateReader.getClusterState().getCollectionOrNull(collection);
+ if (docCollection != null) {
+ Replica replica = docCollection.getReplica(coreName);
+ if (replica != null && !baseUrl.equals(replica.getBaseUrl())) {
+ log.error("wrong base url for this node in replica entry replica={}", replica);
+ throw new IllegalArgumentException("wrong base url for this node in replica entry baseUrl=" + baseUrl + " replica=" + replica);
+ }
+ }
// multiple calls of this method will left only one watcher
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
index 65034f4..2ad9ccd 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
@@ -49,7 +49,7 @@ import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.SolrZkClient;l
+import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkConfigManager;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
[lucene-solr] 01/04: @1434 Couple tweaks around state updates.
Posted by ma...@apache.org.
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
commit 075f0342be28b0d63c370653e1c1729bbb47920c
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Mar 9 15:07:10 2021 -0600
@1434 Couple tweaks around state updates.
---
.../OverseerCollectionMessageHandler.java | 5 ++--
.../apache/solr/cloud/overseer/ZkStateWriter.java | 28 +++++++---------------
2 files changed, 10 insertions(+), 23 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
index 0312bd1..65034f4 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
@@ -49,8 +49,7 @@ import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.common.cloud.SolrZooKeeper;
+import org.apache.solr.common.cloud.SolrZkClient;l
import org.apache.solr.common.cloud.ZkConfigManager;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -285,7 +284,7 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
MDCLoggingContext.setCoreName(message.getStr(REPLICA_PROP));
if (log.isDebugEnabled()) log.debug("OverseerCollectionMessageHandler.processMessage : {} , {}", operation, message);
- ClusterState clusterState = zkWriter.getClusterstate(false);
+ ClusterState clusterState = zkWriter.getClusterstate();
@SuppressWarnings({"rawtypes"}) NamedList results = new NamedList();
try {
String collection = message.getStr("collection");
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 efa48e6..20c4f55 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
@@ -515,23 +515,16 @@ public class ZkStateWriter {
ZkNodeProps updates = stateUpdates.get(collection.getName());
if (updates != null) {
updates.getProperties().clear();
- String stateUpdatesPath = ZkStateReader.getCollectionStateUpdatesPath(collection.getName());
- if (log.isDebugEnabled()) log.debug("write state updates for collection {} {}", collection.getName(), updates);
- try {
- reader.getZkClient().setData(stateUpdatesPath, Utils.toJSON(updates), -1, true, false);
- } catch (KeeperException.NoNodeException e) {
- if (log.isDebugEnabled()) log.debug("No node found for " + stateUpdatesPath, e);
- }
}
}
} catch (KeeperException.NoNodeException e) {
if (log.isDebugEnabled()) log.debug("No node found for state.json", e);
-// lastVersion.set(-1);
-// trackVersions.remove(collection.getName());
-// stateUpdates.remove(collection.getName());
-// cs.getCollectionStates().remove(collection);
+ lastVersion.set(-1);
+ trackVersions.remove(collection.getName());
+ stateUpdates.remove(collection.getName());
+ cs.getCollectionStates().remove(collection);
// likely deleted
} catch (KeeperException.BadVersionException bve) {
@@ -553,7 +546,7 @@ public class ZkStateWriter {
if (dirtyState.contains(collection.getName()) && !dirtyStructure.contains(collection.getName())) {
ZkNodeProps updates = stateUpdates.get(collection.getName());
if (updates != null) {
- writeStateUpdates(lastVersion, collection, updates);
+ writeStateUpdates(collection, updates);
}
}
@@ -590,7 +583,7 @@ public class ZkStateWriter {
// }
}
- private void writeStateUpdates(AtomicInteger lastVersion, DocCollection collection, ZkNodeProps updates) throws KeeperException, InterruptedException {
+ private void writeStateUpdates(DocCollection collection, ZkNodeProps updates) throws KeeperException, InterruptedException {
String stateUpdatesPath = ZkStateReader.getCollectionStateUpdatesPath(collection.getName());
if (log.isDebugEnabled()) log.debug("write state updates for collection {} {}", collection.getName(), updates);
dirtyState.remove(collection.getName());
@@ -598,14 +591,11 @@ public class ZkStateWriter {
reader.getZkClient().setData(stateUpdatesPath, Utils.toJSON(updates), -1, true, false);
} catch (KeeperException.NoNodeException e) {
if (log.isDebugEnabled()) log.debug("No node found for state.json", e);
- // cs.getCollectionStates().remove(collection.getName());
- lastVersion.set(-1);
- trackVersions.remove(collection.getName());
// likely deleted
}
}
- public ClusterState getClusterstate(boolean stateUpdate) {
+ public ClusterState getClusterstate() {
ourLock.lock();
try {
return ClusterState.getRefCS(cs.getCollectionsMap(), -2);
@@ -627,9 +617,7 @@ public class ZkStateWriter {
dirtyStructure.remove(collection);
dirtyState.remove(collection);
ZkNodeProps message = new ZkNodeProps("name", collection);
-
- // cs = new ClusterStateMutator(overseer.getSolrCloudManager()).deleteCollection(cs, message);
-
+ cs = new ClusterStateMutator(overseer.getSolrCloudManager()).deleteCollection(cs, message);
Long id = null;
for (Map.Entry<Long, String> entry : idToCollection.entrySet()) {
if (entry.getValue().equals(collection)) {