ZheyuanLin created ZOOKEEPER-4678: ------------------------------------- Summary: Ephemeral nodes are never deleted if the cluster has a network partition while the zookeeper client is closed Key: ZOOKEEPER-4678 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4678 Project: ZooKeeper Issue Type: Bug Components: quorum, server Affects Versions: 3.6.0, 3.5.4, 3.5.3 Reporter: ZheyuanLin
I read [ZOOKEEPER-2355|https://issues.apache.org/jira/browse/ZOOKEEPER-2355] and tried to reproduce it, but I found that this bug is not fixed in the fixed version. Ephemeral nodes are never deleted if the cluster has a network partition while the zookeeper client is closed. The steps to reproduce are as follows: # Start a three-node zookeeper cluster and elect a leader. # Create client zk1 to connect to the zookeeper cluster. # Use zk1 to create a temporary node "/e1". # Implement a network partition between the leader and any follower. # Use close() to delete the zk1 client. # Remove the previously imposed network partition. # Create client zk2 to connect to any zookeeper server. # Call zk2.exists(nodePath, false), and find that nodePath has not been deleted. # Create a temporary node of the path "/e1" on zk2, and an exception is thrown: KeeperErrorCode = NodeExists for /e1 I don't understand how this problem was fixed before. I tried two fixed versions 3.5.4 and 3.6.0, and the above reproduction path can still be triggered stably. The bug no longer appeared after I commented out the network partition related content. -- This message was sent by Atlassian Jira (v8.20.10#820010)