cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brandonwilli...@apache.org
Subject svn commit: r1222323 - /cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java
Date Thu, 22 Dec 2011 16:17:50 GMT
Author: brandonwilliams
Date: Thu Dec 22 16:17:50 2011
New Revision: 1222323

URL: http://svn.apache.org/viewvc?rev=1222323&view=rev
Log:
Warn if gossip generation is from the future.
Patch by Aaron Morton, reviewed by brandonwilliams for CASSANDRA-3654.

Modified:
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java?rev=1222323&r1=1222322&r2=1222323&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/SystemTable.java Thu
Dec 22 16:17:50 2011
@@ -320,8 +320,19 @@ public class SystemTable
         }
         else
         {
-            generation = Math.max(ByteBufferUtil.toInt(cf.getColumn(GENERATION).value())
+ 1,
-                                  (int) (System.currentTimeMillis() / 1000));
+            // Other nodes will ignore gossip messages about a node that have a lower generation
than previously seen.
+            final int storedGeneration = ByteBufferUtil.toInt(cf.getColumn(GENERATION).value())
+ 1;
+            final int now = (int) (System.currentTimeMillis() / 1000);
+            if (storedGeneration >= now)
+            {
+                logger.warn("Using stored Gossip Generation {} as it is greater than current
system time {}.  See CASSANDRA-3654 if you experience problems",
+                            storedGeneration, now);
+                generation = storedGeneration;
+            }
+            else
+            {
+                generation = now;
+            }
         }
 
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, LOCATION_KEY);



Mime
View raw message