zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fangmin Lv (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ZOOKEEPER-2847) Cannot bind to client port when reconfig based on old static config
Date Wed, 19 Jul 2017 06:15:00 GMT
Fangmin Lv created ZOOKEEPER-2847:
-------------------------------------

             Summary: Cannot bind to client port when reconfig based on old static config
                 Key: ZOOKEEPER-2847
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2847
             Project: ZooKeeper
          Issue Type: Bug
          Components: server
    Affects Versions: 3.5.3, 3.6.0
            Reporter: Fangmin Lv


When started the ensemble with old static config that the server string doesn't have client
port, dynamically remove and add the same server from the ensemble will cause that server
cannot bind to client port, and the ZooKeeper server cannot serve client requests anymore.

>From the code, we'll set the clientAddr to null when start up with old static config,
and dynamic config forces to have <client port> part, which will trigger the following
rebind code in QuorumPeer#processReconfig, and cause the address already in used issue.

    public boolean processReconfig(QuorumVerifier qv, Long suggestedLeaderId, Long zxid, boolean
restartLE) {
        ...
        if (myNewQS != null && myNewQS.clientAddr != null
                && !myNewQS.clientAddr.equals(oldClientAddr)) {
            cnxnFactory.reconfigure(myNewQS.clientAddr);
            updateThreadName();
        }
        ...
    }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message