Prevent repair when protocol version does not match patch by yukim; reviewed by jbellis for CASSANDRA-5523

This commit is contained in:
Yuki Morishita 2013-04-30 14:27:34 -05:00
parent 4f5c84742a
commit fbc4bbcecf
2 changed files with 7 additions and 3 deletions

View File

@ -14,6 +14,7 @@
* Fix repair -snapshot not working (CASSANDRA-5512)
* Set isRunning flag later in binary protocol server (CASSANDRA-5467)
* Fix use of CQL3 functions with descencind clustering order (CASSANDRA-5472)
* Prevent repair when protocol version does not match (CASSANDRA-5523)
Merged from 1.1
* Add retry mechanism to OTC for non-droppable_verbs (CASSANDRA-5393)
* Use allocator information to improve memtable memory usage estimate

View File

@ -668,10 +668,13 @@ public class AntiEntropyService
throw new IOException(message);
}
if (MessagingService.instance().getVersion(endpoint) < MessagingService.VERSION_11 && isSequential)
// All endpoints should be on the same protocol version
if (!MessagingService.instance().knowsVersion(endpoint) || MessagingService.instance().getVersion(endpoint) != MessagingService.current_version)
{
logger.info(String.format("[repair #%s] Cannot repair using snapshots as node %s is pre-1.1", getName(), endpoint));
return;
String message = "Cannot repair among different protocol versions";
differencingDone.signalAll();
logger.error(String.format("[repair #%s] ", getName()) + message);
throw new IOException(message);
}
}