[
https://issues.apache.org/jira/browse/ZOOKEEPER-2893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16290884#comment-16290884
]
ASF GitHub Bot commented on ZOOKEEPER-2893:
-------------------------------------------
Github user anmolnar commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/430#discussion_r156952287
--- Diff: src/java/main/org/apache/zookeeper/ClientCnxn.java ---
@@ -1236,7 +1237,7 @@ public void run() {
"Session 0x"
+
Long.toHexString(getSessionId())
+ " for server "
- +
clientCnxnSocket.getRemoteSocketAddress()
+ + serverAddress
+ ", unexpected error"
+ RETRY_CONN_MSG, e);
--- End diff --
We're talking about the same thing in the Jira. It's arguable which
exception should be logged at INFO level without the stack trace, I ended up
separating SocketExceptions altogether and leaving the rest for the original
handler.
> 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
> Assignee: Andor Molnar
>
> 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)