This is an automated email from the ASF dual-hosted git repository. mck pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-3.11 by this push: new bca91ca Synchronize Keyspace instance store/clear bca91ca is described below commit bca91ca84b9daf8b9e3d361975a535b90b4f77fa Author: Ekaterina Dimitrova <ekaterina.dimitr...@datastax.com> AuthorDate: Wed Oct 14 10:34:39 2020 -0400 Synchronize Keyspace instance store/clear patch by Ekaterina Dimitrova; reviewed by Mick Semb Wever for CASSANDRA-16210 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index df8e6ba..6c41cee 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.9 + * Synchronize Keyspace instance store/clear (CASSANDRA-16210) * Fix ColumnFilter to avoid querying cells of unselected complex columns (CASSANDRA-15977) * Fix memory leak in CompressedChunkReader (CASSANDRA-15880) * Don't attempt value skipping with mixed version cluster (CASSANDRA-15833) diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index 253a66b..7c2028b 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -205,10 +205,8 @@ public class Schema */ public void storeKeyspaceInstance(Keyspace keyspace) { - if (keyspaceInstances.containsKey(keyspace.getName())) + if (keyspaceInstances.putIfAbsent(keyspace.getName(), keyspace) != null) throw new IllegalArgumentException(String.format("Keyspace %s was already initialized.", keyspace.getName())); - - keyspaceInstances.put(keyspace.getName(), keyspace); } /** @@ -653,9 +651,11 @@ public class Schema droppedCfs.add(cfm.cfId); } - // remove the keyspace from the static instances. - Keyspace.clear(ksm.name); - clearKeyspaceMetadata(ksm); + synchronized (Keyspace.class) { + // Remove the keyspace from the static instances. + Keyspace.clear(ksm.name); + clearKeyspaceMetadata(ksm); + } Keyspace.writeOrder.awaitNewBarrier(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org