[CURATOR-570] Excessive calls to ZooKeeper.updateServerList (which can result in session death)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java
- Domain
- distributed-systems
Research direction
Start with the call paths named in the issue: ConnectionState.checkState -> ConnectionState.handleNewConnectionString and ConnectState.checkTimeouts -> ConnectionState.handleNewConnectionString. Trace when the connection string is unchanged and when ZooKeeper.updateServerList is invoked; done means unchanged strings no longer cause excessive updates or the resulting SUSPENDED/RECONNECTED cycle and session death.
Written by the indexing model from the issue text.
Description
On suspend and reconnect, Curator calls ZooKeeper.updateServerList via ConnectionState.checkState --> ConnectionState.handleNewConnectionString. In addition, recipes may be triggered by this as well, and they too make calls ZooKeeper.updateServerList via ConnectState.checkTimeouts --> ConnectionState.handleNewConnectionString.
This happens even though the connection string has not actually changed.
Due to ZOOKEEPER-3825, this can cause the connection to be closed immediately. On its own this would be perceived as a glitch. But due to the Curator-induced calls, what we see is a cycle of SUSPENDED/RECONNECTED, until eventually the session dies and a new session is recreated.
Based on the source code (at time of writing), ZooKeeper.updateServerList is not intended to be called frequently like this.
Originally reported by ryarran, imported from: Excessive calls to ZooKeeper.updateServerList (which can result in session death)
- status: Open
- priority: Major
- resolution: Unresolved
- imported: 2025-01-21
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/curator
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
-
Upgrade to Jackson 3 Open
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100