You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2019/06/03 15:05:05 UTC
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository.
samt pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 8db0d84439c3209bc0da0c9a0b9730fb8b26a328
Merge: 60bdfb1 e4b5d98
Author: Sam Tunnicliffe <sa...@beobal.com>
AuthorDate: Mon Jun 3 15:59:51 2019 +0100
Merge branch 'cassandra-3.0' into cassandra-3.11
CHANGES.txt | 1 +
.../apache/cassandra/concurrent/SEPExecutor.java | 10 +-
.../org/apache/cassandra/concurrent/SEPWorker.java | 33 ++---
.../cassandra/concurrent/SharedExecutorPool.java | 8 +-
.../apache/cassandra/concurrent/StageManager.java | 2 +-
.../org/apache/cassandra/net/MessagingService.java | 10 ++
.../apache/cassandra/service/StorageService.java | 165 ++++++++++++---------
.../org/apache/cassandra/utils/ExpiringMap.java | 5 +
.../org/apache/cassandra/distributed/Cluster.java | 18 ++-
.../cassandra/distributed/UpgradeableCluster.java | 12 +-
.../apache/cassandra/distributed/api/Feature.java | 24 +++
.../cassandra/distributed/api/IInstance.java | 5 +-
.../distributed/impl/AbstractCluster.java | 58 ++++++--
.../impl/DelegatingInvokableInstance.java | 6 +-
.../cassandra/distributed/impl/Instance.java | 46 ++++--
.../distributed/impl/InstanceClassLoader.java | 2 +-
.../distributed/test/DistributedTestBase.java | 1 +
.../cassandra/distributed/test/GossipTest.java | 113 ++++++++++++++
.../cassandra/concurrent/SEPExecutorTest.java | 2 +-
.../org/apache/cassandra/service/MoveTest.java | 11 +-
20 files changed, 394 insertions(+), 138 deletions(-)
diff --cc CHANGES.txt
index 59c89b7,36eb9c2..ff985bd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,8 -1,5 +1,9 @@@
-3.0.19
+3.11.5
+ * Fix cassandra-env.sh to use $CASSANDRA_CONF to find cassandra-jaas.config (CASSANDRA-14305)
+ * Fixed nodetool cfstats printing index name twice (CASSANDRA-14903)
+ * Add flag to disable SASI indexes, and warnings on creation (CASSANDRA-14866)
+Merged from 3.0:
+ * Update token metadata when handling MOVING/REMOVING_TOKEN events (CASSANDRA-15120)
* Add ability to customize cassandra log directory using $CASSANDRA_LOG_DIR (CASSANDRA-15090)
* Skip cells with illegal column names when reading legacy sstables (CASSANDRA-15086)
* Fix assorted gossip races and add related runtime checks (CASSANDRA-15059)
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index e64cbaa,4769b22..c340db6
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -764,15 -715,11 +764,16 @@@ public class StorageService extends Not
private boolean shouldBootstrap()
{
- return DatabaseDescriptor.isAutoBootstrap() && !SystemKeyspace.bootstrapComplete() && !DatabaseDescriptor.getSeeds().contains(FBUtilities.getBroadcastAddress());
+ return DatabaseDescriptor.isAutoBootstrap() && !SystemKeyspace.bootstrapComplete() && !isSeed();
+ }
+
+ public static boolean isSeed()
+ {
+ return DatabaseDescriptor.getSeeds().contains(FBUtilities.getBroadcastAddress());
}
- private void prepareToJoin() throws ConfigurationException
+ @VisibleForTesting
+ public void prepareToJoin() throws ConfigurationException
{
if (!joined)
{
@@@ -852,31 -788,9 +853,32 @@@
}
}
+ public void waitForSchema(int delay)
+ {
+ // first sleep the delay to make sure we see all our peers
+ for (int i = 0; i < delay; i += 1000)
+ {
+ // if we see schema, we can proceed to the next check directly
+ if (!Schema.instance.getVersion().equals(SchemaConstants.emptyVersion))
+ {
+ logger.debug("got schema: {}", Schema.instance.getVersion());
+ break;
+ }
+ Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
+ }
+ // if our schema hasn't matched yet, wait until it has
+ // we do this by waiting for all in-flight migration requests and responses to complete
+ // (post CASSANDRA-1391 we don't expect this to be necessary very often, but it doesn't hurt to be careful)
+ if (!MigrationManager.isReadyForBootstrap())
+ {
+ setMode(Mode.JOINING, "waiting for schema information to complete", true);
+ MigrationManager.waitUntilReadyForBootstrap();
+ }
+ }
+
- private void joinTokenRing(int delay) throws ConfigurationException
- {
+ @VisibleForTesting
+ public void joinTokenRing(int delay) throws ConfigurationException
- {
++{
joined = true;
// We bootstrap if we haven't successfully bootstrapped before, as long as we are not a seed.
diff --cc test/distributed/org/apache/cassandra/distributed/impl/Instance.java
index 382388b,1b385fb..f209d53
--- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
@@@ -99,6 -99,10 +100,10 @@@ public class Instance extends IsolatedE
this.config = config;
InstanceIDDefiner.setInstanceId(config.num());
FBUtilities.setBroadcastInetAddress(config.broadcastAddressAndPort().address);
+ acceptsOnInstance((IInstanceConfig override) -> {
+ Config.setOverrideLoadConfig(() -> loadConfig(override));
- DatabaseDescriptor.setDaemonInitialized();
++ DatabaseDescriptor.daemonInitialization();
+ }).accept(config);
}
public IInstanceConfig config()
@@@ -288,8 -294,17 +295,17 @@@
throw new RuntimeException(e);
}
- initializeRing(cluster);
- registerMockMessaging(cluster);
+ // TODO: support each separately
+ if (with.contains(Feature.GOSSIP) || with.contains(Feature.NETWORK))
+ {
+ StorageService.instance.prepareToJoin();
- StorageService.instance.joinTokenRing(1000);
++ StorageService.instance.joinTokenRing(5000);
+ }
+ else
+ {
+ initializeRing(cluster);
+ registerMockMessaging(cluster);
+ }
SystemKeyspace.finishStartup();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org