[
https://issues.apache.org/jira/browse/ZOOKEEPER-2442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Han updated ZOOKEEPER-2442:
-----------------------------------
Description:
The function connectOne() in QuorumCnxManager.java sometimes fails to release a
socket allocated by Socket():
{code}
try {
if (LOG.isDebugEnabled()) {
LOG.debug("Opening channel to server " + sid);
}
Socket sock = new Socket();
setSockOpts(sock);
sock.connect(self.getView().get(sid).electionAddr, cnxTO);
if (LOG.isDebugEnabled()) {
LOG.debug("Connected to server " + sid);
}
initiateConnection(sock, sid);
} catch (UnresolvedAddressException e) {
// Sun doesn't include the address that causes this
// exception to be thrown, also UAE cannot be wrapped cleanly
// so we log the exception in order to capture this critical
// detail.
LOG.warn("Cannot open channel to " + sid
+ " at election address " + electionAddr, e);
throw e;
} catch (IOException e) {
LOG.warn("Cannot open channel to " + sid
+ " at election address " + electionAddr,
e);
}
{code}
Another place in Listener.run() where the client socket is not explicitly
closed.
was:
The function connectOne() in QuorumCnxManager.java sometimes fails to release a
socket allocated by Socket():
{code}
try {
if (LOG.isDebugEnabled()) {
LOG.debug("Opening channel to server " + sid);
}
Socket sock = new Socket();
setSockOpts(sock);
sock.connect(self.getView().get(sid).electionAddr, cnxTO);
if (LOG.isDebugEnabled()) {
LOG.debug("Connected to server " + sid);
}
initiateConnection(sock, sid);
} catch (UnresolvedAddressException e) {
// Sun doesn't include the address that causes this
// exception to be thrown, also UAE cannot be wrapped cleanly
// so we log the exception in order to capture this critical
// detail.
LOG.warn("Cannot open channel to " + sid
+ " at election address " + electionAddr, e);
throw e;
} catch (IOException e) {
LOG.warn("Cannot open channel to " + sid
+ " at election address " + electionAddr,
e);
}
{code}
> Socket leak in QuorumCnxManager connectOne
> ------------------------------------------
>
> Key: ZOOKEEPER-2442
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2442
> Project: ZooKeeper
> Issue Type: Bug
> Components: quorum, server
> Affects Versions: 3.5.1
> Reporter: Michael Han
> Assignee: Michael Han
>
> The function connectOne() in QuorumCnxManager.java sometimes fails to release
> a socket allocated by Socket():
> {code}
> try {
> if (LOG.isDebugEnabled()) {
> LOG.debug("Opening channel to server " + sid);
> }
> Socket sock = new Socket();
> setSockOpts(sock);
> sock.connect(self.getView().get(sid).electionAddr, cnxTO);
> if (LOG.isDebugEnabled()) {
> LOG.debug("Connected to server " + sid);
> }
> initiateConnection(sock, sid);
> } catch (UnresolvedAddressException e) {
> // Sun doesn't include the address that causes this
> // exception to be thrown, also UAE cannot be wrapped cleanly
> // so we log the exception in order to capture this critical
> // detail.
> LOG.warn("Cannot open channel to " + sid
> + " at election address " + electionAddr, e);
> throw e;
> } catch (IOException e) {
> LOG.warn("Cannot open channel to " + sid
> + " at election address " + electionAddr,
> e);
> }
> {code}
> Another place in Listener.run() where the client socket is not explicitly
> closed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)