lchq created ZOOKEEPER-4736:
-------------------------------

             Summary: socket fd leak
                 Key: ZOOKEEPER-4736
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4736
             Project: ZooKeeper
          Issue Type: Bug
          Components: java client, server
    Affects Versions: 3.9.0, 3.8.0, 3.7.0, 3.6.3
         Environment: zookeeper 3.6.3  !4cea510a57af58c08e73d146e8535ee4.jpg!
            Reporter: lchq
         Attachments: 4cea510a57af58c08e73d146e8535ee4.jpg, 
IMG_20230815_114433.jpg

if network service is unavailable, as "ifdown eth0" or "service network stop" 
and so on, zk-client process running on this node will   experience fd leakage 
。it happens for invoking  "new Zookeeper(..)". 

when   network service is unavailable, ClientCnxn::SendThread::run() method 
will continuely do startConnect(),and suffer exception "SocketException: 
Network is unreachable". Exception handlers catch this exception and do 
SendThread::cleanup() to do some clean operation,but because  in 
ClientCnxnSocketNIO::registerAndConnect method socket is registed to selector 
firstly and do  sock.connect operation leading the fd of sock can't be closed.

Changing the order of sock.connect and sock.register can solve this issue,and 
it will not affect Original sense because of the sock.reister take effect when  
selector.select(waitTimeOut) is triggered



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to