Paul Millar created ZOOKEEPER-2893:
--------------------------------------

             Summary: very poor choice of logging if client fails to connect to 
server
                 Key: ZOOKEEPER-2893
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2893
             Project: ZooKeeper
          Issue Type: Bug
          Components: java client
    Affects Versions: 3.4.6
            Reporter: Paul Millar


We are using ZooKeeper in our project and have received reports that, when 
suffering a networking problem, log files become flooded with messages like:
{quote}
07 Sep 2017 08:22:00 (System) [] Session 0x45d3151be3600a9 for server null, 
unexpected error, closing socket connection and attempting reconnect
java.net.NoRouteToHostException: No route to host
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
~[na:1.8.0_131]
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) 
~[na:1.8.0_131]
        at 
org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
 ~[zookeeper-3.4.6.jar:3.4.6-1569965]
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
~[zookeeper-3.4.6.jar:3.4.6-1569965]
{quote}

Looking at the code that logs this message ({{ClientCnxn}}), there seems to be 
quite a few problems here:
# the code logs a stack-trace, even though there is no bug here.  In our 
project, we treat all logged stack-traces as bugs,
# if the networking issue is not fixed promptly, the log files is flooded with 
these message,
# The message is built using {{ClientCnxnSocket#getRemoteSocketAddress}}, yet 
in this case, this does not provide the expected information (yielding 
{{null}}),
# The log message fails to include a description of what actually went wrong.

(Additionally, the code uses string concatenation rather than templating when 
building the message; however, this is an optimisation issue)

My suggestion is that this log entry is updated so that it doesn't log a 
stack-trace, but does include some indication why the connection failed.



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

Reply via email to