You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/11/06 21:34:43 UTC

[1/6] git commit: Fix potential socket leak in connectionpool creation patch by Minh Do; reviewed by jbellis for CASSANDRA-6308

Updated Branches:
  refs/heads/cassandra-1.2 8e7d7285c -> 8c2404493
  refs/heads/cassandra-2.0 dc71d2200 -> b4020979c
  refs/heads/trunk a4fc13c05 -> c65c15cc0


Fix potential socket leak in connectionpool creation
patch by Minh Do; reviewed by jbellis for CASSANDRA-6308


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8c240449
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8c240449
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8c240449

Branch: refs/heads/cassandra-1.2
Commit: 8c2404493a6efc109cd621c02a4de6ef1f1f46aa
Parents: 8e7d728
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:45 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:45 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index fd3af68..eab185a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
  * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273)
  * make calculatePendingRanges asynchronous (CASSANDRA-6244)
  * Remove blocking flushes in gossip thread (CASSANDRA-6297)
+ * Fix potential socket leak in connectionpool creation (CASSANDRA-6308)
 
 
 1.2.11

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index a199e83..7e420cf 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -259,7 +259,7 @@ public final class MessagingService implements MessagingServiceMBean
      */
     private final ConcurrentMap<InetAddress, DebuggableThreadPoolExecutor> streamExecutors = new NonBlockingHashMap<InetAddress, DebuggableThreadPoolExecutor>();
 
-    private final NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
+    private final ConcurrentMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
 
     private static final Logger logger = LoggerFactory.getLogger(MessagingService.class);
     private static final int LOG_DROPPED_INTERVAL_IN_MS = 5000;
@@ -484,11 +484,17 @@ public final class MessagingService implements MessagingServiceMBean
         OutboundTcpConnectionPool cp = connectionManagers.get(to);
         if (cp == null)
         {
-            connectionManagers.putIfAbsent(to, new OutboundTcpConnectionPool(to));
-            cp = connectionManagers.get(to);
+            cp = new OutboundTcpConnectionPool(to);
+            OutboundTcpConnectionPool existingPool = connectionManagers.putIfAbsent(to, cp);
+            if (existingPool != null)
+            {
+                cp.close();
+                cp = existingPool;
+            }
         }
         return cp;
     }
+    
 
     public OutboundTcpConnection getConnection(InetAddress to, MessageOut msg)
     {


[2/6] git commit: Fix potential socket leak in connectionpool creation patch by Minh Do; reviewed by jbellis for CASSANDRA-6308

Posted by jb...@apache.org.
Fix potential socket leak in connectionpool creation
patch by Minh Do; reviewed by jbellis for CASSANDRA-6308


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8c240449
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8c240449
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8c240449

Branch: refs/heads/cassandra-2.0
Commit: 8c2404493a6efc109cd621c02a4de6ef1f1f46aa
Parents: 8e7d728
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:45 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:45 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index fd3af68..eab185a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
  * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273)
  * make calculatePendingRanges asynchronous (CASSANDRA-6244)
  * Remove blocking flushes in gossip thread (CASSANDRA-6297)
+ * Fix potential socket leak in connectionpool creation (CASSANDRA-6308)
 
 
 1.2.11

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index a199e83..7e420cf 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -259,7 +259,7 @@ public final class MessagingService implements MessagingServiceMBean
      */
     private final ConcurrentMap<InetAddress, DebuggableThreadPoolExecutor> streamExecutors = new NonBlockingHashMap<InetAddress, DebuggableThreadPoolExecutor>();
 
-    private final NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
+    private final ConcurrentMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
 
     private static final Logger logger = LoggerFactory.getLogger(MessagingService.class);
     private static final int LOG_DROPPED_INTERVAL_IN_MS = 5000;
@@ -484,11 +484,17 @@ public final class MessagingService implements MessagingServiceMBean
         OutboundTcpConnectionPool cp = connectionManagers.get(to);
         if (cp == null)
         {
-            connectionManagers.putIfAbsent(to, new OutboundTcpConnectionPool(to));
-            cp = connectionManagers.get(to);
+            cp = new OutboundTcpConnectionPool(to);
+            OutboundTcpConnectionPool existingPool = connectionManagers.putIfAbsent(to, cp);
+            if (existingPool != null)
+            {
+                cp.close();
+                cp = existingPool;
+            }
         }
         return cp;
     }
+    
 
     public OutboundTcpConnection getConnection(InetAddress to, MessageOut msg)
     {


[3/6] git commit: Fix potential socket leak in connectionpool creation patch by Minh Do; reviewed by jbellis for CASSANDRA-6308

Posted by jb...@apache.org.
Fix potential socket leak in connectionpool creation
patch by Minh Do; reviewed by jbellis for CASSANDRA-6308


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8c240449
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8c240449
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8c240449

Branch: refs/heads/trunk
Commit: 8c2404493a6efc109cd621c02a4de6ef1f1f46aa
Parents: 8e7d728
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:45 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:45 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index fd3af68..eab185a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
  * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273)
  * make calculatePendingRanges asynchronous (CASSANDRA-6244)
  * Remove blocking flushes in gossip thread (CASSANDRA-6297)
+ * Fix potential socket leak in connectionpool creation (CASSANDRA-6308)
 
 
 1.2.11

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c240449/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index a199e83..7e420cf 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -259,7 +259,7 @@ public final class MessagingService implements MessagingServiceMBean
      */
     private final ConcurrentMap<InetAddress, DebuggableThreadPoolExecutor> streamExecutors = new NonBlockingHashMap<InetAddress, DebuggableThreadPoolExecutor>();
 
-    private final NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
+    private final ConcurrentMap<InetAddress, OutboundTcpConnectionPool> connectionManagers = new NonBlockingHashMap<InetAddress, OutboundTcpConnectionPool>();
 
     private static final Logger logger = LoggerFactory.getLogger(MessagingService.class);
     private static final int LOG_DROPPED_INTERVAL_IN_MS = 5000;
@@ -484,11 +484,17 @@ public final class MessagingService implements MessagingServiceMBean
         OutboundTcpConnectionPool cp = connectionManagers.get(to);
         if (cp == null)
         {
-            connectionManagers.putIfAbsent(to, new OutboundTcpConnectionPool(to));
-            cp = connectionManagers.get(to);
+            cp = new OutboundTcpConnectionPool(to);
+            OutboundTcpConnectionPool existingPool = connectionManagers.putIfAbsent(to, cp);
+            if (existingPool != null)
+            {
+                cp.close();
+                cp = existingPool;
+            }
         }
         return cp;
     }
+    
 
     public OutboundTcpConnection getConnection(InetAddress to, MessageOut msg)
     {


[6/6] git commit: Merge branch 'cassandra-2.0' into trunk

Posted by jb...@apache.org.
Merge branch 'cassandra-2.0' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c65c15cc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c65c15cc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c65c15cc

Branch: refs/heads/trunk
Commit: c65c15cc0583164ffd724d1008397f9380fd7a89
Parents: a4fc13c b402097
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:59 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:59 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c65c15cc/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c65c15cc/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------


[4/6] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by jb...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4020979
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4020979
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4020979

Branch: refs/heads/trunk
Commit: b4020979ccba9514b7d70fb47d76b5e2edaeffdc
Parents: dc71d22 8c24044
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:51 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:51 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4020979/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 7e9201a,eab185a..4a1fd05
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -29,42 -11,10 +29,43 @@@ Merged from 1.2
   * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273)
   * make calculatePendingRanges asynchronous (CASSANDRA-6244)
   * Remove blocking flushes in gossip thread (CASSANDRA-6297)
+  * Fix potential socket leak in connectionpool creation (CASSANDRA-6308)
  
  
 -1.2.11
 +2.0.2
 + * Update FailureDetector to use nanontime (CASSANDRA-4925)
 + * Fix FileCacheService regressions (CASSANDRA-6149)
 + * Never return WriteTimeout for CL.ANY (CASSANDRA-6032)
 + * Fix race conditions in bulk loader (CASSANDRA-6129)
 + * Add configurable metrics reporting (CASSANDRA-4430)
 + * drop queries exceeding a configurable number of tombstones (CASSANDRA-6117)
 + * Track and persist sstable read activity (CASSANDRA-5515)
 + * Fixes for speculative retry (CASSANDRA-5932, CASSANDRA-6194)
 + * Improve memory usage of metadata min/max column names (CASSANDRA-6077)
 + * Fix thrift validation refusing row markers on CQL3 tables (CASSANDRA-6081)
 + * Fix insertion of collections with CAS (CASSANDRA-6069)
 + * Correctly send metadata on SELECT COUNT (CASSANDRA-6080)
 + * Track clients' remote addresses in ClientState (CASSANDRA-6070)
 + * Create snapshot dir if it does not exist when migrating
 +   leveled manifest (CASSANDRA-6093)
 + * make sequential nodetool repair the default (CASSANDRA-5950)
 + * Add more hooks for compaction strategy implementations (CASSANDRA-6111)
 + * Fix potential NPE on composite 2ndary indexes (CASSANDRA-6098)
 + * Delete can potentially be skipped in batch (CASSANDRA-6115)
 + * Allow alter keyspace on system_traces (CASSANDRA-6016)
 + * Disallow empty column names in cql (CASSANDRA-6136)
 + * Use Java7 file-handling APIs and fix file moving on Windows (CASSANDRA-5383)
 + * Save compaction history to system keyspace (CASSANDRA-5078)
 + * Fix NPE if StorageService.getOperationMode() is executed before full startup (CASSANDRA-6166)
 + * CQL3: support pre-epoch longs for TimestampType (CASSANDRA-6212)
 + * Add reloadtriggers command to nodetool (CASSANDRA-4949)
 + * cqlsh: ignore empty 'value alias' in DESCRIBE (CASSANDRA-6139)
 + * Fix sstable loader (CASSANDRA-6205)
 + * Reject bootstrapping if the node already exists in gossip (CASSANDRA-5571)
 + * Fix NPE while loading paxos state (CASSANDRA-6211)
 + * cqlsh: add SHOW SESSION <tracing-session> command (CASSANDRA-6228)
 +Merged from 1.2:
 + * (Hadoop) Require CFRR batchSize to be at least 2 (CASSANDRA-6114)
   * Add a warning for small LCS sstable size (CASSANDRA-6191)
   * Add ability to list specific KS/CF combinations in nodetool cfstats (CASSANDRA-4191)
   * Mark CF clean if a mutation raced the drop and got it marked dirty (CASSANDRA-5946)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4020979/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------


[5/6] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by jb...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4020979
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4020979
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4020979

Branch: refs/heads/cassandra-2.0
Commit: b4020979ccba9514b7d70fb47d76b5e2edaeffdc
Parents: dc71d22 8c24044
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Nov 6 12:33:51 2013 -0800
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Nov 6 12:33:51 2013 -0800

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4020979/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 7e9201a,eab185a..4a1fd05
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -29,42 -11,10 +29,43 @@@ Merged from 1.2
   * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273)
   * make calculatePendingRanges asynchronous (CASSANDRA-6244)
   * Remove blocking flushes in gossip thread (CASSANDRA-6297)
+  * Fix potential socket leak in connectionpool creation (CASSANDRA-6308)
  
  
 -1.2.11
 +2.0.2
 + * Update FailureDetector to use nanontime (CASSANDRA-4925)
 + * Fix FileCacheService regressions (CASSANDRA-6149)
 + * Never return WriteTimeout for CL.ANY (CASSANDRA-6032)
 + * Fix race conditions in bulk loader (CASSANDRA-6129)
 + * Add configurable metrics reporting (CASSANDRA-4430)
 + * drop queries exceeding a configurable number of tombstones (CASSANDRA-6117)
 + * Track and persist sstable read activity (CASSANDRA-5515)
 + * Fixes for speculative retry (CASSANDRA-5932, CASSANDRA-6194)
 + * Improve memory usage of metadata min/max column names (CASSANDRA-6077)
 + * Fix thrift validation refusing row markers on CQL3 tables (CASSANDRA-6081)
 + * Fix insertion of collections with CAS (CASSANDRA-6069)
 + * Correctly send metadata on SELECT COUNT (CASSANDRA-6080)
 + * Track clients' remote addresses in ClientState (CASSANDRA-6070)
 + * Create snapshot dir if it does not exist when migrating
 +   leveled manifest (CASSANDRA-6093)
 + * make sequential nodetool repair the default (CASSANDRA-5950)
 + * Add more hooks for compaction strategy implementations (CASSANDRA-6111)
 + * Fix potential NPE on composite 2ndary indexes (CASSANDRA-6098)
 + * Delete can potentially be skipped in batch (CASSANDRA-6115)
 + * Allow alter keyspace on system_traces (CASSANDRA-6016)
 + * Disallow empty column names in cql (CASSANDRA-6136)
 + * Use Java7 file-handling APIs and fix file moving on Windows (CASSANDRA-5383)
 + * Save compaction history to system keyspace (CASSANDRA-5078)
 + * Fix NPE if StorageService.getOperationMode() is executed before full startup (CASSANDRA-6166)
 + * CQL3: support pre-epoch longs for TimestampType (CASSANDRA-6212)
 + * Add reloadtriggers command to nodetool (CASSANDRA-4949)
 + * cqlsh: ignore empty 'value alias' in DESCRIBE (CASSANDRA-6139)
 + * Fix sstable loader (CASSANDRA-6205)
 + * Reject bootstrapping if the node already exists in gossip (CASSANDRA-5571)
 + * Fix NPE while loading paxos state (CASSANDRA-6211)
 + * cqlsh: add SHOW SESSION <tracing-session> command (CASSANDRA-6228)
 +Merged from 1.2:
 + * (Hadoop) Require CFRR batchSize to be at least 2 (CASSANDRA-6114)
   * Add a warning for small LCS sstable size (CASSANDRA-6191)
   * Add ability to list specific KS/CF combinations in nodetool cfstats (CASSANDRA-4191)
   * Mark CF clean if a mutation raced the drop and got it marked dirty (CASSANDRA-5946)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4020979/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------