Hi ZooKeepers,
I want to trace where Watcher.Event.KeeperState.Expired generated and it
seems only generated
when connect to server fails due to exceed session timeout.
Besides, I find code snippet in ClientCnxn as below
void queueEvent(String clientPath, int err, Set<Watcher>
materializedWatchers, EventType eventType) {
KeeperState sessionState = KeeperState.SyncConnected;
if (KeeperException.Code.SESSIONEXPIRED.intValue() == err
|| KeeperException.Code.CONNECTIONLOSS.intValue() == err) {
sessionState = Event.KeeperState.Disconnected;
}
WatchedEvent event = new WatchedEvent(eventType, sessionState,
clientPath);
eventThread.queueEvent(event, materializedWatchers);
}
which seems a bit wried to me what we queue
a Event.KeeperState.Disconnected on
KeeperException.Code.SESSIONEXPIRED.
Back to the question, how zookeeper discovers and triggers session expire
event on
session expired after connection established successfully?
Best,
tison.