Avoids possible deadlock during bootstrap due to not comparing schema UUID by timestamp
patch by slebresne; reviewed by driftx for CASSANDRA-4159 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5434ac4a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5434ac4a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5434ac4a Branch: refs/heads/trunk Commit: 5434ac4a063cc64d139a81aad353a203d52a2432 Parents: cb7a931 Author: Sylvain Lebresne <[email protected]> Authored: Tue Apr 17 18:09:46 2012 +0200 Committer: Sylvain Lebresne <[email protected]> Committed: Tue Apr 17 18:09:46 2012 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/service/MigrationManager.java | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5434ac4a/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 26d0011..f370ebc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,7 @@ * allow short snitch names (CASSANDRA-4130) * cqlsh: guess correct version of Python for Arch Linux (CASSANDRA-4090) * (CLI) properly handle quotes in create/update keyspace commands (CASSANDRA-4129) + * Avoids possible deadlock during bootstrap (CASSANDRA-4159) 1.0.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/5434ac4a/src/java/org/apache/cassandra/service/MigrationManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java index cf0cbcd..f9e5c33 100644 --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@ -124,7 +124,7 @@ public class MigrationManager implements IEndpointStateChangeSubscriber public static boolean isReadyForBootstrap() { - return highestKnown.compareTo(Schema.instance.getVersion()) == 0; + return highestKnown.timestamp() == Schema.instance.getVersion().timestamp(); } private static void pushMigrations(InetAddress endpoint, Collection<IColumn> migrations)
