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.

Reply via email to