[
https://issues.apache.org/jira/browse/ZOOKEEPER-2784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16017731#comment-16017731
]
ASF GitHub Bot commented on ZOOKEEPER-2784:
-------------------------------------------
Github user eribeiro commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/257#discussion_r117407300
--- Diff:
src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java ---
@@ -657,9 +663,12 @@ public void run() {
LOG.error("Error closing server socket", ie);
} catch (InterruptedException ie) {
LOG.error("Interrupted while sleeping. " +
- "Ignoring exception", ie);
+ "Ignoring exception", ie);
}
closeSocket(client);
+ } catch (ConfigException e) {
+ LOG.error(e.getMessage());
+ ce = e;
--- End diff --
:+1: BUT you need to call `closeSocket(client);` here too. See line 668. ;)
It is the ServerSocket and Socket we need to close in case of error. I know we
close the socket previously before throwing the exception, but `Socket#close()`
is idempotent so, I would advise to put it here too. In fact, we could remove
line 668 and add a `finally` block with the `closeSocket(client);` after line
672.
**Most important!** The latest change doesn't break the while loop so it
only leave after reaching the maximum number of retries or shutdown is called
(I bet the first). We should include a `break;` at line 672. ;)
> Add some limitations on code level for `SID` to avoid configuration problem
> ---------------------------------------------------------------------------
>
> Key: ZOOKEEPER-2784
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2784
> Project: ZooKeeper
> Issue Type: Improvement
> Components: quorum
> Affects Versions: 3.5.2
> Reporter: Benedict Jin
> Fix For: 3.6.0
>
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> As so far, `QuorumCnxManager#receiveConnection` cannot find out the same
> `SID` problem, then the Zookeeper cluster will start successfully. But the
> cluster is not health, and it will throw some problem like `not
> synchronized`. So, i thought we should add some limitations on code level for
> `SID` to find those configuration problem more early.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)