You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2011/09/30 23:59:46 UTC
svn commit: r1177854 - in /zookeeper/branches/branch-3.3: CHANGES.txt
src/java/main/org/apache/zookeeper/ClientCnxn.java
src/java/main/org/apache/zookeeper/server/DataTree.java
Author: camille
Date: Fri Sep 30 21:59:46 2011
New Revision: 1177854
URL: http://svn.apache.org/viewvc?rev=1177854&view=rev
Log:
ZOOKEEPER-1174. FD leak when network unreachable (Ted Dunning via camille)
Modified:
zookeeper/branches/branch-3.3/CHANGES.txt
zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/ClientCnxn.java
zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/server/DataTree.java
Modified: zookeeper/branches/branch-3.3/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/CHANGES.txt?rev=1177854&r1=1177853&r2=1177854&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.3/CHANGES.txt Fri Sep 30 21:59:46 2011
@@ -30,6 +30,8 @@ BUGFIXES:
ZOOKEEPER-1206. Sequential node creation does not use always use
digits in node name given certain Locales. (Mark Miller via phunt)
+
+ ZOOKEEPER-1174. FD leak when network unreachable. (Ted Dunning via camille)
Release 3.3.3 - 2011-02-23
Backward compatible changes:
Modified: zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/ClientCnxn.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/ClientCnxn.java?rev=1177854&r1=1177853&r2=1177854&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/ClientCnxn.java (original)
+++ zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/ClientCnxn.java Fri Sep 30 21:59:46 2011
@@ -1066,9 +1066,15 @@ public class ClientCnxn {
sock.socket().setTcpNoDelay(true);
setName(getName().replaceAll("\\(.*\\)",
"(" + addr.getHostName() + ":" + addr.getPort() + ")"));
- sockKey = sock.register(selector, SelectionKey.OP_CONNECT);
- if (sock.connect(addr)) {
- primeConnection(sockKey);
+ try {
+ sockKey = sock.register(selector, SelectionKey.OP_CONNECT);
+ boolean immediateConnect = sock.connect(addr);
+ if (immediateConnect) {
+ primeConnection(sockKey);
+ }
+ } catch (IOException e) {
+ LOG.error("Unable to open socket to " + addr);
+ sock.close();
}
initialized = false;
@@ -1160,7 +1166,7 @@ public class ClientCnxn {
}
}
selected.clear();
- } catch (Exception e) {
+ } catch (Throwable e) {
if (closing) {
if (LOG.isDebugEnabled()) {
// closing so this is expected
Modified: zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/server/DataTree.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/server/DataTree.java?rev=1177854&r1=1177853&r2=1177854&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/server/DataTree.java (original)
+++ zookeeper/branches/branch-3.3/src/java/main/org/apache/zookeeper/server/DataTree.java Fri Sep 30 21:59:46 2011
@@ -197,7 +197,7 @@ public class DataTree {
/**
* converts a list of longs to a list of acls.
*
- * @param longs
+ * @param longVal
* the list of longs
* @return a list of ACLs that map to longs
*/
@@ -607,7 +607,7 @@ public class DataTree {
/**
* If there is a quota set, return the appropriate prefix for that quota
* Else return null
- * @param The ZK path to check for quota
+ * @param path The ZK path to check for quota
* @return Max quota prefix, or null if none
*/
public String getMaxPrefixWithQuota(String path) {
@@ -855,9 +855,7 @@ public class DataTree {
*
* @param path
* the path to be used
- * @param bytes
- * the long bytes
- * @param count
+ * @param counts
* the int count
*/
private void getCounts(String path, Counts counts) {