Author: jbellis
Date: Wed Jul 27 15:13:36 2011
New Revision: 1151494

URL: http://svn.apache.org/viewvc?rev=1151494&view=rev
Log:
keep gossipped version in sync with actual on migration coordinator
patch by jbellis; reviewed by brandonwilliams and tested by Richard Low for 
CASSANDRA-2946

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/Migration.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1151494&r1=1151493&r2=1151494&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Jul 27 15:13:36 2011
@@ -7,6 +7,8 @@
  * expose data_dir though jmx (CASSANDRA-2770)
  * don't include tmp files as sstable when create cfs (CASSANDRA-2929)
  * log Java classpath on startup (CASSANDRA-2895)
+ * keep gossipped version in sync with actual on migration coordinator 
+   (CASSANDRA-2946)
 
 
 0.8.2

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=1151494&r1=1151493&r2=1151494&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 Wed Jul 27 15:13:36 2011
@@ -281,6 +281,9 @@ public class HintedHandOffManager implem
         }
         waited = 0;
         // then wait for the correct schema version.
+        // usually we use DD.getDefsVersion, which checks the local schema 
uuid as stored in the system table.
+        // here we check the one in gossip instead; this serves as a canary to 
warn us if we introduce a bug that
+        // causes the two to diverge (see CASSANDRA-2946)
         while 
(!gossiper.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.SCHEMA).value.equals(
                 
gossiper.getEndpointStateForEndpoint(FBUtilities.getLocalAddress()).getApplicationState(ApplicationState.SCHEMA).value))
         {

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/Migration.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/Migration.java?rev=1151494&r1=1151493&r2=1151494&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/Migration.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/Migration.java
 Wed Jul 27 15:13:36 2011
@@ -159,6 +159,7 @@ public abstract class Migration
         assert !StorageService.instance.isClientMode();
         assert column != null;
         MigrationManager.announce(column);
+        passiveAnnounce(); // keeps gossip in sync w/ what we just told 
everyone
     }
 
     public final void passiveAnnounce()


Reply via email to