Merge branch 'cassandra-3.11' into trunk

This commit is contained in:
Mick Semb Wever 2020-11-18 13:02:46 +01:00
commit 8bcd6ab9bb
No known key found for this signature in database
GPG Key ID: E91335D77E3E87CB
3 changed files with 24 additions and 8 deletions

View File

@ -256,7 +256,7 @@ Upgrading
sstables already added/removed - see CASSANDRA-14103 for details.
- Support for JNA with glibc 2.6 and earlier has been removed. Centos 5, Debian 4, and Ubuntu 7.10 operating systems
must be first upgraded. See CASSANDRA-16212 for more.
- In cassandra.yaml, num_tokens must be defined if initial_token is defined.
- In cassandra.yaml, when using vnodes num_tokens must be defined if initial_token is defined.
If it is not defined, or not equal to the numbers of tokens defined in initial_tokens,
the node will not start. See CASSANDRA-14477 for details.

View File

@ -1087,7 +1087,10 @@ public class DatabaseDescriptor
Collection<String> tokens = tokensFromString(conf.initial_token);
if (conf.num_tokens == null)
{
throw new ConfigurationException("initial_token was set but num_tokens is not!", false);
if (tokens.size() == 1)
conf.num_tokens = 1;
else
throw new ConfigurationException("initial_token was set but num_tokens is not!", false);
}
if (tokens.size() != conf.num_tokens)

View File

@ -504,7 +504,7 @@ public class DatabaseDescriptorTest
}
@Test
public void testApplyInitialTokensInitialTokensSetNumTokensSetAndDoesMatch()
public void testApplyTokensConfigInitialTokensSetNumTokensSetAndDoesMatch()
{
Config config = DatabaseDescriptor.loadConfig();
config.initial_token = "0,256,1024";
@ -523,7 +523,7 @@ public class DatabaseDescriptorTest
}
@Test
public void testApplyInitialTokensInitialTokensSetNumTokensSetAndDoesntMatch()
public void testApplyTokensConfigInitialTokensSetNumTokensSetAndDoesntMatch()
{
Config config = DatabaseDescriptor.loadConfig();
config.initial_token = "0,256,1024";
@ -533,7 +533,7 @@ public class DatabaseDescriptorTest
{
DatabaseDescriptor.applyTokensConfig(config);
Assert.fail("initial_token = 0,256,1024 and num_tokens = 10 but applyInitialTokens() did not fail!");
Assert.fail("initial_token = 0,256,1024 and num_tokens = 10 but applyTokensConfig() did not fail!");
}
catch (ConfigurationException ex)
{
@ -543,7 +543,7 @@ public class DatabaseDescriptorTest
}
@Test
public void testApplyInitialTokensInitialTokensSetNumTokensNotSet()
public void testApplyTokensConfigInitialTokensSetNumTokensNotSet()
{
Config config = DatabaseDescriptor.loadConfig();
config.initial_token = "0,256,1024";
@ -560,7 +560,7 @@ public class DatabaseDescriptorTest
}
@Test
public void testApplyInitialTokensInitialTokensNotSetNumTokensSet()
public void testApplyTokensConfigInitialTokensNotSetNumTokensSet()
{
Config config = DatabaseDescriptor.loadConfig();
config.num_tokens = 3;
@ -572,7 +572,7 @@ public class DatabaseDescriptorTest
}
@Test
public void testApplyInitialTokensInitialTokensNotSetNumTokensNotSet()
public void testApplyTokensConfigInitialTokensNotSetNumTokensNotSet()
{
Config config = DatabaseDescriptor.loadConfig();
DatabaseDescriptor.applyTokensConfig(config);
@ -580,4 +580,17 @@ public class DatabaseDescriptorTest
Assert.assertEquals(Integer.valueOf(1), config.num_tokens);
Assert.assertTrue(DatabaseDescriptor.tokensFromString(config.initial_token).isEmpty());
}
@Test
public void testApplyTokensConfigInitialTokensOneNumTokensNotSet()
{
Config config = DatabaseDescriptor.loadConfig();
config.initial_token = "123";
config.num_tokens = null;
DatabaseDescriptor.applyTokensConfig(config);
Assert.assertEquals(Integer.valueOf(1), config.num_tokens);
Assert.assertEquals(1, DatabaseDescriptor.tokensFromString(config.initial_token).size());
}
}