Avoid deadlock when running nodetool refresh before node is fully up

Patch by marcuse; reviewed by Jordan West for CASSANDRA-14310


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

Branch: refs/heads/trunk
Commit: 22bb413ba29aa6a95034b7dac833a8273983fa42
Parents: edcb90f
Author: Marcus Eriksson <marc...@apache.org>
Authored: Tue Mar 13 08:45:30 2018 +0100
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Wed Apr 11 14:47:05 2018 +0200

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java   | 2 +-
 src/java/org/apache/cassandra/service/StorageService.java | 2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/22bb413b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 94b2276..9012f8c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.17
+ * Avoid deadlock when running nodetool refresh before node is fully up 
(CASSANDRA-14310)
  * Handle all exceptions when opening sstables (CASSANDRA-14202)
  * Handle incompletely written hint descriptors during startup 
(CASSANDRA-14080)
  * Handle repeat open bound from SRP in read repair (CASSANDRA-14330)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/22bb413b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java 
b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 14e06b0..4c7bc46 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -653,7 +653,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
      * @param ksName The keyspace name
      * @param cfName The columnFamily name
      */
-    public static synchronized void loadNewSSTables(String ksName, String 
cfName)
+    public static void loadNewSSTables(String ksName, String cfName)
     {
         /** ks/cf existence checks will be done by open and getCFS methods for 
us */
         Keyspace keyspace = Keyspace.open(ksName);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/22bb413b/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 cf8e257..77fcb81 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -4597,6 +4597,8 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
      */
     public void loadNewSSTables(String ksName, String cfName)
     {
+        if (!isInitialized())
+            throw new RuntimeException("Not yet initialized, can't load new 
sstables");
         ColumnFamilyStore.loadNewSSTables(ksName, cfName);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to