You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Shalin Shekhar Mangar (JIRA)" <ji...@apache.org> on 2015/07/28 17:18:05 UTC
[jira] [Created] (SOLR-7842) ZK connection loss or session expiry
events should not fire config directory listeners
Shalin Shekhar Mangar created SOLR-7842:
-------------------------------------------
Summary: ZK connection loss or session expiry events should not fire config directory listeners
Key: SOLR-7842
URL: https://issues.apache.org/jira/browse/SOLR-7842
Project: Solr
Issue Type: Bug
Components: SolrCloud
Affects Versions: 5.2.1
Reporter: Shalin Shekhar Mangar
Priority: Minor
Fix For: 5.3, Trunk
The watcher on the config directory has the following in the process method:
{code}
Stat stat = null;
try {
stat = zkClient.exists(zkDir, null, true);
} catch (KeeperException e) {
//ignore , it is not a big deal
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
boolean resetWatcher = false;
try {
resetWatcher = fireEventListeners(zkDir);
} finally {
if (Event.EventType.None.equals(event.getType())) {
log.info("A node got unwatched for {}", zkDir);
} else {
if (resetWatcher) setConfWatcher(zkDir, this, stat);
else log.info("A node got unwatched for {}", zkDir);
}
}
{code}
Even if the watcher is fired because of session expiry or connection loss, the fireEventListeners() method is executed and all subsequent listener invocations fail due to the loss of connection/session. All this is logged as well.
{code}
466879 WARN (Thread-78) [ ] o.a.s.c.ZkController listener throws error
org.apache.solr.common.SolrException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /configs/jepsen/params.json
at org.apache.solr.core.RequestParams.getFreshRequestParams(RequestParams.java:158)
at org.apache.solr.core.SolrConfig.refreshRequestParams(SolrConfig.java:909)
at org.apache.solr.core.SolrCore$11.run(SolrCore.java:2585)
at org.apache.solr.cloud.ZkController$4.run(ZkController.java:2385)
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /configs/jepsen/params.json
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
at org.apache.solr.common.cloud.SolrZkClient$4.execute(SolrZkClient.java:302)
at org.apache.solr.common.cloud.SolrZkClient$4.execute(SolrZkClient.java:299)
at org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:61)
at org.apache.solr.common.cloud.SolrZkClient.exists(SolrZkClient.java:299)
at org.apache.solr.core.RequestParams.getFreshRequestParams(RequestParams.java:148)
... 3 more
{code}
We should check the keeper state in addition to the event type and ignore such events.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org