zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lvfangmin <...@git.apache.org>
Subject [GitHub] zookeeper pull request #447: [ZOOKEEPER-2926] Fix potential data consistency...
Date Fri, 12 Jan 2018 19:01:55 GMT
Github user lvfangmin commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/447#discussion_r161300774
  
    --- Diff: src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java ---
    @@ -1187,13 +1187,8 @@ private ProcessTxnResult processTxn(Request request, TxnHeader
hdr,
             if (opCode == OpCode.createSession) {
                 if (hdr != null && txn instanceof CreateSessionTxn) {
                     CreateSessionTxn cst = (CreateSessionTxn) txn;
    -                sessionTracker.addGlobalSession(sessionId, cst.getTimeOut());
    -            } else if (request != null && request.isLocalSession()) {
    -                request.request.rewind();
    -                int timeout = request.request.getInt();
    -                request.request.rewind();
    -                sessionTracker.addSession(request.sessionId, timeout);
    -            } else {
    +                sessionTracker.commitSession(sessionId, cst.getTimeOut());
    +            } else if (request == null || !request.isLocalSession()) {
    --- End diff --
    
    Local session creation is happened in ZooKeeperServer when the when processing connection
request, PrepRequestProcessor only deals with the global sessions.
    
    Local session creation will also send a createSession op into the processor pipeline,
so if we remove the else check, a lot of warning log will show for local session createSession
op, that's not what we wanted.


---

Mime
View raw message