You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2014/04/24 17:26:35 UTC

[01/10] git commit: Don't shut MessagingService down when replacing a node.

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 2890cc5be -> 9359b7a31
  refs/heads/cassandra-2.0 c3550fe40 -> 205b6616e
  refs/heads/cassandra-2.1 c073fab77 -> 11827f0d7
  refs/heads/trunk 417ebf03e -> 7fe5503f2


Don't shut MessagingService down when replacing a node.

Patch by brandonwilliams, reviewed by Benedict for CASSANDRA-6476


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

Branch: refs/heads/cassandra-1.2
Commit: 9359b7a318884c9d3a052946d50711ce9f8b51e2
Parents: 2890cc5
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:21:45 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:21:45 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74ddcfd..69e9d37 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@
  * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018)
  * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
  * Ensure that batchlog and hint timeouts do not produce hints (CASSANDRA-7058)
+ * Don't shut MessagingService down when replacing a node (CASSANDRA-6476)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/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 3f90d7f..5e4a117 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -471,6 +471,11 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
+    public boolean isListening()
+    {
+        return listenGate.isSignaled();
+    }
+
     public void destroyConnectionPool(InetAddress to)
     {
         OutboundTcpConnectionPool cp = connectionManagers.get(to);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 1e7bed4..3b2d945 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -390,7 +390,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     public synchronized Collection<Token> prepareReplacementInfo() throws ConfigurationException
     {
         logger.info("Gathering node replacement information for {}", DatabaseDescriptor.getReplaceAddress());
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
 
         // make magic happen
         Gossiper.instance.doShadowRound();
@@ -407,7 +408,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             Collection<Token> tokens = TokenSerializer.deserialize(getPartitioner(), new DataInputStream(new ByteArrayInputStream(getApplicationStateValue(DatabaseDescriptor.getReplaceAddress(), ApplicationState.TOKENS))));
             
             SystemTable.setLocalHostId(hostId); // use the replacee's host Id as our own so we receive hints, etc
-            MessagingService.instance().shutdown();
             Gossiper.instance.resetEndpointStateMap(); // clean up since we have what we need
             return tokens;        
         }
@@ -435,7 +435,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                         break outer;
                 }
             }
-
             // sleep until any schema migrations have finished
             while (!MigrationManager.isReadyForBootstrap())
             {
@@ -464,7 +463,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Gossiper.instance.start((int) (System.currentTimeMillis() / 1000)); // needed for node-ring gathering.
         Gossiper.instance.addLocalApplicationState(ApplicationState.NET_VERSION, valueFactory.networkVersion());
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         try
         {
            Thread.sleep(ringDelay);
@@ -631,7 +631,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates
 
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         LoadBroadcaster.instance.startBroadcasting();
 
         HintedHandOffManager.instance.start();


[05/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by br...@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/205b6616
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/205b6616
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/205b6616

Branch: refs/heads/cassandra-2.1
Commit: 205b6616ead9d7740f59cdd1a3f4d5a2c9bf96b1
Parents: c3550fe 9359b7a
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:24 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:24 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[07/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by br...@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/205b6616
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/205b6616
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/205b6616

Branch: refs/heads/trunk
Commit: 205b6616ead9d7740f59cdd1a3f4d5a2c9bf96b1
Parents: c3550fe 9359b7a
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:24 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:24 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[03/10] git commit: Don't shut MessagingService down when replacing a node.

Posted by br...@apache.org.
Don't shut MessagingService down when replacing a node.

Patch by brandonwilliams, reviewed by Benedict for CASSANDRA-6476


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

Branch: refs/heads/cassandra-2.1
Commit: 9359b7a318884c9d3a052946d50711ce9f8b51e2
Parents: 2890cc5
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:21:45 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:21:45 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74ddcfd..69e9d37 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@
  * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018)
  * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
  * Ensure that batchlog and hint timeouts do not produce hints (CASSANDRA-7058)
+ * Don't shut MessagingService down when replacing a node (CASSANDRA-6476)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/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 3f90d7f..5e4a117 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -471,6 +471,11 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
+    public boolean isListening()
+    {
+        return listenGate.isSignaled();
+    }
+
     public void destroyConnectionPool(InetAddress to)
     {
         OutboundTcpConnectionPool cp = connectionManagers.get(to);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 1e7bed4..3b2d945 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -390,7 +390,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     public synchronized Collection<Token> prepareReplacementInfo() throws ConfigurationException
     {
         logger.info("Gathering node replacement information for {}", DatabaseDescriptor.getReplaceAddress());
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
 
         // make magic happen
         Gossiper.instance.doShadowRound();
@@ -407,7 +408,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             Collection<Token> tokens = TokenSerializer.deserialize(getPartitioner(), new DataInputStream(new ByteArrayInputStream(getApplicationStateValue(DatabaseDescriptor.getReplaceAddress(), ApplicationState.TOKENS))));
             
             SystemTable.setLocalHostId(hostId); // use the replacee's host Id as our own so we receive hints, etc
-            MessagingService.instance().shutdown();
             Gossiper.instance.resetEndpointStateMap(); // clean up since we have what we need
             return tokens;        
         }
@@ -435,7 +435,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                         break outer;
                 }
             }
-
             // sleep until any schema migrations have finished
             while (!MigrationManager.isReadyForBootstrap())
             {
@@ -464,7 +463,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Gossiper.instance.start((int) (System.currentTimeMillis() / 1000)); // needed for node-ring gathering.
         Gossiper.instance.addLocalApplicationState(ApplicationState.NET_VERSION, valueFactory.networkVersion());
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         try
         {
            Thread.sleep(ringDelay);
@@ -631,7 +631,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates
 
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         LoadBroadcaster.instance.startBroadcasting();
 
         HintedHandOffManager.instance.start();


[06/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by br...@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/205b6616
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/205b6616
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/205b6616

Branch: refs/heads/cassandra-2.0
Commit: 205b6616ead9d7740f59cdd1a3f4d5a2c9bf96b1
Parents: c3550fe 9359b7a
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:24 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:24 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[08/10] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by br...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 11827f0d7e0d50565f276a7aefe9a88873529ba7
Parents: c073fab 205b661
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:37 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:37 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[02/10] git commit: Don't shut MessagingService down when replacing a node.

Posted by br...@apache.org.
Don't shut MessagingService down when replacing a node.

Patch by brandonwilliams, reviewed by Benedict for CASSANDRA-6476


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

Branch: refs/heads/cassandra-2.0
Commit: 9359b7a318884c9d3a052946d50711ce9f8b51e2
Parents: 2890cc5
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:21:45 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:21:45 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74ddcfd..69e9d37 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@
  * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018)
  * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
  * Ensure that batchlog and hint timeouts do not produce hints (CASSANDRA-7058)
+ * Don't shut MessagingService down when replacing a node (CASSANDRA-6476)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/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 3f90d7f..5e4a117 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -471,6 +471,11 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
+    public boolean isListening()
+    {
+        return listenGate.isSignaled();
+    }
+
     public void destroyConnectionPool(InetAddress to)
     {
         OutboundTcpConnectionPool cp = connectionManagers.get(to);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 1e7bed4..3b2d945 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -390,7 +390,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     public synchronized Collection<Token> prepareReplacementInfo() throws ConfigurationException
     {
         logger.info("Gathering node replacement information for {}", DatabaseDescriptor.getReplaceAddress());
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
 
         // make magic happen
         Gossiper.instance.doShadowRound();
@@ -407,7 +408,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             Collection<Token> tokens = TokenSerializer.deserialize(getPartitioner(), new DataInputStream(new ByteArrayInputStream(getApplicationStateValue(DatabaseDescriptor.getReplaceAddress(), ApplicationState.TOKENS))));
             
             SystemTable.setLocalHostId(hostId); // use the replacee's host Id as our own so we receive hints, etc
-            MessagingService.instance().shutdown();
             Gossiper.instance.resetEndpointStateMap(); // clean up since we have what we need
             return tokens;        
         }
@@ -435,7 +435,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                         break outer;
                 }
             }
-
             // sleep until any schema migrations have finished
             while (!MigrationManager.isReadyForBootstrap())
             {
@@ -464,7 +463,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Gossiper.instance.start((int) (System.currentTimeMillis() / 1000)); // needed for node-ring gathering.
         Gossiper.instance.addLocalApplicationState(ApplicationState.NET_VERSION, valueFactory.networkVersion());
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         try
         {
            Thread.sleep(ringDelay);
@@ -631,7 +631,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates
 
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         LoadBroadcaster.instance.startBroadcasting();
 
         HintedHandOffManager.instance.start();


[09/10] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by br...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 11827f0d7e0d50565f276a7aefe9a88873529ba7
Parents: c073fab 205b661
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:37 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:37 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[04/10] git commit: Don't shut MessagingService down when replacing a node.

Posted by br...@apache.org.
Don't shut MessagingService down when replacing a node.

Patch by brandonwilliams, reviewed by Benedict for CASSANDRA-6476


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

Branch: refs/heads/trunk
Commit: 9359b7a318884c9d3a052946d50711ce9f8b51e2
Parents: 2890cc5
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:21:45 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:21:45 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74ddcfd..69e9d37 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@
  * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018)
  * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
  * Ensure that batchlog and hint timeouts do not produce hints (CASSANDRA-7058)
+ * Don't shut MessagingService down when replacing a node (CASSANDRA-6476)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/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 3f90d7f..5e4a117 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -471,6 +471,11 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
+    public boolean isListening()
+    {
+        return listenGate.isSignaled();
+    }
+
     public void destroyConnectionPool(InetAddress to)
     {
         OutboundTcpConnectionPool cp = connectionManagers.get(to);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9359b7a3/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 1e7bed4..3b2d945 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -390,7 +390,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     public synchronized Collection<Token> prepareReplacementInfo() throws ConfigurationException
     {
         logger.info("Gathering node replacement information for {}", DatabaseDescriptor.getReplaceAddress());
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
 
         // make magic happen
         Gossiper.instance.doShadowRound();
@@ -407,7 +408,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             Collection<Token> tokens = TokenSerializer.deserialize(getPartitioner(), new DataInputStream(new ByteArrayInputStream(getApplicationStateValue(DatabaseDescriptor.getReplaceAddress(), ApplicationState.TOKENS))));
             
             SystemTable.setLocalHostId(hostId); // use the replacee's host Id as our own so we receive hints, etc
-            MessagingService.instance().shutdown();
             Gossiper.instance.resetEndpointStateMap(); // clean up since we have what we need
             return tokens;        
         }
@@ -435,7 +435,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                         break outer;
                 }
             }
-
             // sleep until any schema migrations have finished
             while (!MigrationManager.isReadyForBootstrap())
             {
@@ -464,7 +463,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Gossiper.instance.start((int) (System.currentTimeMillis() / 1000)); // needed for node-ring gathering.
         Gossiper.instance.addLocalApplicationState(ApplicationState.NET_VERSION, valueFactory.networkVersion());
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         try
         {
            Thread.sleep(ringDelay);
@@ -631,7 +631,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates
 
 
-        MessagingService.instance().listen(FBUtilities.getLocalAddress());
+        if (!MessagingService.instance().isListening())
+            MessagingService.instance().listen(FBUtilities.getLocalAddress());
         LoadBroadcaster.instance.startBroadcasting();
 
         HintedHandOffManager.instance.start();


[10/10] git commit: Merge branch 'cassandra-2.1' into trunk

Posted by br...@apache.org.
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 7fe5503f21b478a57625eb98ba3b242619b457b1
Parents: 417ebf0 11827f0
Author: Brandon Williams <br...@apache.org>
Authored: Thu Apr 24 10:22:46 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Apr 24 10:22:46 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------