Mark Johnson created ZOOKEEPER-2901:
---------------------------------------
Summary: Session ID that is negative causes mis-calculation of
Ephemeral Type
Key: ZOOKEEPER-2901
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2901
Project: ZooKeeper
Issue Type: Bug
Components: server
Affects Versions: 3.5.3
Environment: Running 3.5.3-beta in Docker container
Reporter: Mark Johnson
In the code that determines the EphemeralType it is looking at the owner (which
is the client ID or connection ID):
EphemeralType.java:
public static EphemeralType get(long ephemeralOwner) {
if (ephemeralOwner == CONTAINER_EPHEMERAL_OWNER) {
return CONTAINER;
}
if (ephemeralOwner < 0) {
return TTL;
}
return (ephemeralOwner == 0) ? VOID : NORMAL;
}
However my connection ID is:
header.getClientId(): -720548323429908480
This causes the code to think this is a TTL Ephemeral node instead of a
NORMAL Ephemeral node.
This also explains why this is random - if my client ID is non-negative
then the node gets added correctly.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)