You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2018/02/13 23:41:51 UTC
[1/4] cassandra git commit: Use new token allocation for non
bootstrap case as well.
Repository: cassandra
Updated Branches:
refs/heads/trunk 834f2a6ec -> 0bc2164df
Use new token allocation for non bootstrap case as well.
> patch by Dikang Gu; reviewed by Branimir Lambov for CASSANSRA-13080
backported by Mick Semb Wever; reviewed by Jon Haddad for CASSANSRA-14212
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8a5e88f6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8a5e88f6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8a5e88f6
Branch: refs/heads/trunk
Commit: 8a5e88f635fdb984505a99a553b5799cedccd06d
Parents: f6ec5c5
Author: Dikang Gu <di...@gmail.com>
Authored: Tue Dec 27 11:55:13 2016 -0800
Committer: Mick Semb Wever <mc...@apache.org>
Committed: Tue Feb 13 08:02:02 2018 +1100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/dht/BootStrapper.java | 18 +++--
.../dht/tokenallocator/TokenAllocation.java | 3 -
.../cassandra/service/StorageService.java | 69 +++++++++-----------
.../apache/cassandra/dht/BootStrapperTest.java | 2 +-
5 files changed, 48 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5e88f6/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index bce7e1d..ba72406 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.11.2
+ * Backport CASSANDRA-13080: Use new token allocation for non bootstrap case as well (CASSANDRA-14212)
* Remove dependencies on JVM internal classes from JMXServerUtils (CASSANDRA-14173)
* Add DEFAULT, UNSET, MBEAN and MBEANS to `ReservedKeywords` (CASSANDRA-14205)
* Add Unittest for schema migration fix (CASSANDRA-14140)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5e88f6/src/java/org/apache/cassandra/dht/BootStrapper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/BootStrapper.java b/src/java/org/apache/cassandra/dht/BootStrapper.java
index 392dbf2..1e00f48 100644
--- a/src/java/org/apache/cassandra/dht/BootStrapper.java
+++ b/src/java/org/apache/cassandra/dht/BootStrapper.java
@@ -33,12 +33,15 @@ import org.apache.cassandra.db.TypeSizes;
import org.apache.cassandra.dht.tokenallocator.TokenAllocation;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.gms.FailureDetector;
+import org.apache.cassandra.gms.Gossiper;
import org.apache.cassandra.io.IVersionedSerializer;
import org.apache.cassandra.io.util.DataInputPlus;
import org.apache.cassandra.io.util.DataOutputPlus;
import org.apache.cassandra.locator.AbstractReplicationStrategy;
import org.apache.cassandra.locator.TokenMetadata;
+import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.streaming.*;
+import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.progress.ProgressEvent;
import org.apache.cassandra.utils.progress.ProgressEventNotifierSupport;
import org.apache.cassandra.utils.progress.ProgressEventType;
@@ -155,7 +158,7 @@ public class BootStrapper extends ProgressEventNotifierSupport
* otherwise, if allocationKeyspace is specified use the token allocation algorithm to generate suitable tokens
* else choose num_tokens tokens at random
*/
- public static Collection<Token> getBootstrapTokens(final TokenMetadata metadata, InetAddress address) throws ConfigurationException
+ public static Collection<Token> getBootstrapTokens(final TokenMetadata metadata, InetAddress address, int schemaWaitDelay) throws ConfigurationException
{
String allocationKeyspace = DatabaseDescriptor.getAllocateTokensForKeyspace();
Collection<String> initialTokens = DatabaseDescriptor.getInitialTokens();
@@ -171,7 +174,7 @@ public class BootStrapper extends ProgressEventNotifierSupport
throw new ConfigurationException("num_tokens must be >= 1");
if (allocationKeyspace != null)
- return allocateTokens(metadata, address, allocationKeyspace, numTokens);
+ return allocateTokens(metadata, address, allocationKeyspace, numTokens, schemaWaitDelay);
if (numTokens == 1)
logger.warn("Picking random token for a single vnode. You should probably add more vnodes and/or use the automatic token allocation mechanism.");
@@ -182,7 +185,7 @@ public class BootStrapper extends ProgressEventNotifierSupport
private static Collection<Token> getSpecifiedTokens(final TokenMetadata metadata,
Collection<String> initialTokens)
{
- logger.trace("tokens manually specified as {}", initialTokens);
+ logger.info("tokens manually specified as {}", initialTokens);
List<Token> tokens = new ArrayList<>(initialTokens.size());
for (String tokenString : initialTokens)
{
@@ -197,8 +200,13 @@ public class BootStrapper extends ProgressEventNotifierSupport
static Collection<Token> allocateTokens(final TokenMetadata metadata,
InetAddress address,
String allocationKeyspace,
- int numTokens)
+ int numTokens,
+ int schemaWaitDelay)
{
+ StorageService.instance.waitForSchema(schemaWaitDelay);
+ if (!FBUtilities.getBroadcastAddress().equals(InetAddress.getLoopbackAddress()))
+ Gossiper.waitToSettle();
+
Keyspace ks = Keyspace.open(allocationKeyspace);
if (ks == null)
throw new ConfigurationException("Problem opening token allocation keyspace " + allocationKeyspace);
@@ -216,6 +224,8 @@ public class BootStrapper extends ProgressEventNotifierSupport
if (metadata.getEndpoint(token) == null)
tokens.add(token);
}
+
+ logger.info("Generated random tokens. tokens are {}", tokens);
return tokens;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5e88f6/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java b/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java
index 15d7868..9c50613 100644
--- a/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java
+++ b/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java
@@ -53,9 +53,6 @@ public class TokenAllocation
final InetAddress endpoint,
int numTokens)
{
- if (!FBUtilities.getBroadcastAddress().equals(InetAddress.getLoopbackAddress()))
- Gossiper.waitToSettle();
-
TokenMetadata tokenMetadataCopy = tokenMetadata.cloneOnlyTokenMap();
StrategyAdapter strategy = getStrategy(tokenMetadataCopy, rs, endpoint);
Collection<Token> tokens = create(tokenMetadata, strategy).addUnit(endpoint, numTokens);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5e88f6/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 5106fad6..b743bf3 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -748,7 +748,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
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
@@ -831,6 +836,29 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
}
}
+ 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
{
joined = true;
@@ -867,25 +895,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
else
SystemKeyspace.setBootstrapState(SystemKeyspace.BootstrapState.IN_PROGRESS);
setMode(Mode.JOINING, "waiting for ring information", true);
- // 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();
- }
+ waitForSchema(delay);
setMode(Mode.JOINING, "schema complete, ready to bootstrap", true);
setMode(Mode.JOINING, "waiting for pending range calculation", true);
PendingRangeCalculatorService.instance.blockUntilFinished();
@@ -915,7 +925,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
throw new UnsupportedOperationException(s);
}
setMode(Mode.JOINING, "getting bootstrap token", true);
- bootstrapTokens = BootStrapper.getBootstrapTokens(tokenMetadata, FBUtilities.getBroadcastAddress());
+ bootstrapTokens = BootStrapper.getBootstrapTokens(tokenMetadata, FBUtilities.getBroadcastAddress(), delay);
}
else
{
@@ -971,22 +981,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
bootstrapTokens = SystemKeyspace.getSavedTokens();
if (bootstrapTokens.isEmpty())
{
- Collection<String> initialTokens = DatabaseDescriptor.getInitialTokens();
- if (initialTokens.size() < 1)
- {
- bootstrapTokens = BootStrapper.getRandomTokens(tokenMetadata, DatabaseDescriptor.getNumTokens());
- if (DatabaseDescriptor.getNumTokens() == 1)
- logger.warn("Generated random token {}. Random tokens will result in an unbalanced ring; see http://wiki.apache.org/cassandra/Operations", bootstrapTokens);
- else
- logger.info("Generated random tokens. tokens are {}", bootstrapTokens);
- }
- else
- {
- bootstrapTokens = new ArrayList<>(initialTokens.size());
- for (String token : initialTokens)
- bootstrapTokens.add(getTokenFactory().fromString(token));
- logger.info("Saved tokens not found. Using configuration value: {}", bootstrapTokens);
- }
+ bootstrapTokens = BootStrapper.getBootstrapTokens(tokenMetadata, FBUtilities.getBroadcastAddress(), delay);
}
else
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5e88f6/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/BootStrapperTest.java b/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
index 3af52e5..ed15a70 100644
--- a/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
+++ b/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
@@ -224,7 +224,7 @@ public class BootStrapperTest
private void allocateTokensForNode(int vn, String ks, TokenMetadata tm, InetAddress addr)
{
SummaryStatistics os = TokenAllocation.replicatedOwnershipStats(tm.cloneOnlyTokenMap(), Keyspace.open(ks).getReplicationStrategy(), addr);
- Collection<Token> tokens = BootStrapper.allocateTokens(tm, addr, ks, vn);
+ Collection<Token> tokens = BootStrapper.allocateTokens(tm, addr, ks, vn, 0);
assertEquals(vn, tokens.size());
tm.updateNormalTokens(tokens, addr);
SummaryStatistics ns = TokenAllocation.replicatedOwnershipStats(tm.cloneOnlyTokenMap(), Keyspace.open(ks).getReplicationStrategy(), addr);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[2/4] cassandra git commit: Fix unit test failures in ViewComplexTest
Posted by ja...@apache.org.
Fix unit test failures in ViewComplexTest
patch by Dinesh Joshi; reviewed by jasobrown for CASSANDRA-14219
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/890f3191
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/890f3191
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/890f3191
Branch: refs/heads/trunk
Commit: 890f319142ddd3cf2692ff45ff28e71001365e96
Parents: 91e83c7
Author: Dinesh Joshi <di...@yahoo.com>
Authored: Fri Feb 9 11:14:12 2018 -0800
Committer: Jason Brown <ja...@gmail.com>
Committed: Tue Feb 13 15:00:57 2018 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../unit/org/apache/cassandra/cql3/ViewComplexTest.java | 12 ++++++------
2 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/890f3191/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 197ba58..90bd53f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.16
+ * Fix unit test failures in ViewComplexTest (CASSANDRA-14219)
* Add MinGW uname check to start scripts (CASSANDRA-12940)
* Protect against overflow of local expiration time (CASSANDRA-14092)
* Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/890f3191/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java b/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
index 464cc39..bb0e269 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
@@ -319,7 +319,7 @@ public class ViewComplexTest extends CQLTester
private void testUpdateColumnNotInView(boolean flush) throws Throwable
{
// CASSANDRA-13127: if base column not selected in view are alive, then pk of view row should be alive
- createTable("create table %s (p int, c int, v1 int, v2 int, primary key(p, c))");
+ String baseTable = createTable("create table %s (p int, c int, v1 int, v2 int, primary key(p, c))");
execute("USE " + keyspace());
executeNet(protocolVersion, "USE " + keyspace());
@@ -399,7 +399,7 @@ public class ViewComplexTest extends CQLTester
assertRowsIgnoringOrder(execute("SELECT * from %s WHERE c = ? AND p = ?", 0, 0), row(0, 0, null, 1));
assertRowsIgnoringOrder(execute("SELECT * from mv WHERE c = ? AND p = ?", 0, 0), row(0, 0));
- assertInvalidMessage("Cannot drop column v2 on base table with materialized views", "ALTER TABLE %s DROP v2");
+ assertInvalidMessage(String.format("Cannot drop column v2 on base table %s with materialized views.", baseTable), "ALTER TABLE %s DROP v2");
// // drop unselected base column, unselected metadata should be removed, thus view row is dead
// updateView("ALTER TABLE %s DROP v2");
// assertRowsIgnoringOrder(execute("SELECT * from %s WHERE c = ? AND p = ?", 0, 0));
@@ -424,7 +424,7 @@ public class ViewComplexTest extends CQLTester
{
execute("USE " + keyspace());
executeNet(protocolVersion, "USE " + keyspace());
- String baseTableName = createTable("CREATE TABLE %s (k int, c int, a int, b int, l list<int>, s set<int>, m map<int,int>, PRIMARY KEY (k, c))");
+ String baseTable = createTable("CREATE TABLE %s (k int, c int, a int, b int, l list<int>, s set<int>, m map<int,int>, PRIMARY KEY (k, c))");
createView("mv",
"CREATE MATERIALIZED VIEW %s AS SELECT a, b FROM %%s WHERE k IS NOT NULL AND c IS NOT NULL PRIMARY KEY (c, k)");
Keyspace ks = Keyspace.open(keyspace());
@@ -460,7 +460,7 @@ public class ViewComplexTest extends CQLTester
assertRowsIgnoringOrder(execute("SELECT k,c,a,b from %s"), row(1, 1, null, null));
assertRowsIgnoringOrder(execute("SELECT * from mv"), row(1, 1, null, null));
- assertInvalidMessage("Cannot drop column m on base table " + baseTableName + " with materialized views", "ALTER TABLE %s DROP m");
+ assertInvalidMessage(String.format("Cannot drop column m on base table %s with materialized views.", baseTable), "ALTER TABLE %s DROP m");
// executeNet(protocolVersion, "ALTER TABLE %s DROP m");
// ks.getColumnFamilyStore("mv").forceMajorCompaction();
// assertRowsIgnoringOrder(execute("SELECT k,c,a,b from %s WHERE k = 1 AND c = 1"));
@@ -880,7 +880,7 @@ public class ViewComplexTest extends CQLTester
public void testUpdateWithColumnTimestampBiggerThanPk(boolean flush) throws Throwable
{
// CASSANDRA-11500 able to shadow old view row with column ts greater tahn pk's ts and re-insert the view row
- createTable("CREATE TABLE %s (k int PRIMARY KEY, a int, b int);");
+ String baseTable = createTable("CREATE TABLE %s (k int PRIMARY KEY, a int, b int);");
execute("USE " + keyspace());
executeNet(protocolVersion, "USE " + keyspace());
@@ -929,7 +929,7 @@ public class ViewComplexTest extends CQLTester
assertRowsIgnoringOrder(execute("SELECT k,a,b from mv"), row(1, 1, 2));
assertRowsIgnoringOrder(execute("SELECT k,a,b from %s"), row(1, 1, 2));
- assertInvalidMessage("Cannot drop column a on base table with materialized views", "ALTER TABLE %s DROP a");
+ assertInvalidMessage(String.format("Cannot drop column a on base table %s with materialized views.", baseTable), "ALTER TABLE %s DROP a");
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[3/4] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by ja...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/30c35dd8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/30c35dd8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/30c35dd8
Branch: refs/heads/trunk
Commit: 30c35dd8a4715703aade64e382d58f3db445c88a
Parents: 8a5e88f 890f319
Author: Jason Brown <ja...@gmail.com>
Authored: Tue Feb 13 15:02:21 2018 -0800
Committer: Jason Brown <ja...@gmail.com>
Committed: Tue Feb 13 15:07:48 2018 -0800
----------------------------------------------------------------------
.../unit/org/apache/cassandra/cql3/ViewComplexTest.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/30c35dd8/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[4/4] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Posted by ja...@apache.org.
Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0bc2164d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0bc2164d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0bc2164d
Branch: refs/heads/trunk
Commit: 0bc2164df244487ef2870c44dfbbd4321378fa49
Parents: 834f2a6 30c35dd
Author: Jason Brown <ja...@gmail.com>
Authored: Tue Feb 13 15:38:58 2018 -0800
Committer: Jason Brown <ja...@gmail.com>
Committed: Tue Feb 13 15:41:29 2018 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../unit/org/apache/cassandra/cql3/ViewComplexTest.java | 12 ++++++------
2 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bc2164d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index d7f1f4e,ba72406..54b587d
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -208,7 -20,8 +208,8 @@@
* Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
* Update jackson JSON jars (CASSANDRA-13949)
* Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
- * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527)
Merged from 3.0:
++ * Fix unit test failures in ViewComplexTest (CASSANDRA-14219)
* Add MinGW uname check to start scripts (CASSANDRA-12840)
* Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bc2164d/test/unit/org/apache/cassandra/cql3/ViewComplexTest.java
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org