You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/01/24 08:48:48 UTC
lucene-solr:jira/solr-11702: SOLR-11702: Adding sessionId check
Repository: lucene-solr
Updated Branches:
refs/heads/jira/solr-11702 eba1602ee -> 42085a35a
SOLR-11702: Adding sessionId check
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/42085a35
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/42085a35
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/42085a35
Branch: refs/heads/jira/solr-11702
Commit: 42085a35a42c5dabeea959ae8035f8376d75d534
Parents: eba1602
Author: Cao Manh Dat <da...@apache.org>
Authored: Wed Jan 24 15:48:35 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Wed Jan 24 15:48:35 2018 +0700
----------------------------------------------------------------------
solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/42085a35/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
index 328d4f5..b2639a0 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
@@ -74,6 +74,7 @@ public class ZkShardTerms implements AutoCloseable{
private final Set<CoreTermWatcher> listeners = new HashSet<>();
private Terms terms;
+ private long sessionId = -1;
// Listener of a core for shard's term change events
interface CoreTermWatcher {
@@ -285,7 +286,7 @@ public class ZkShardTerms implements AutoCloseable{
// This block is synchronized because we want only one and at least one valid watcher is watching the term node.
Watcher watcher = null;
try {
- if (numWatcher.compareAndSet(0, 1)) {
+ if (numWatcher.compareAndSet(0, 1) || sessionId != zkClient.getSolrZooKeeper().getSessionId()) {
watcher = event -> {
// session events are not change events, and do not remove the watcher
if (Watcher.Event.EventType.None == event.getType()) {
@@ -297,6 +298,7 @@ public class ZkShardTerms implements AutoCloseable{
numWatcher.compareAndSet(1, 0);
refreshTerms(false);
};
+ sessionId = zkClient.getSolrZooKeeper().getSessionId();
}
if (earlyStop && watcher == null) return;