You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/06/28 09:58:57 UTC
svn commit: r1140472 - in /cassandra/branches/cassandra-0.8: CHANGES.txt
src/java/org/apache/cassandra/db/SystemTable.java
Author: slebresne
Date: Tue Jun 28 07:58:56 2011
New Revision: 1140472
URL: http://svn.apache.org/viewvc?rev=1140472&view=rev
Log:
Avoids race in SystemTable.getCurrentLocalNodeId
patch by slebresne; reviewed by jbellis for CASSANDRA-2824
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140472&r1=1140471&r2=1140472&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 07:58:56 2011
@@ -9,6 +9,7 @@
to ColumnFamilyInputFormat (CASSANDRA-2807)
* fix potential NPE while scheduling read repair for range slice
(CASSANDRA-2823)
+ * Fix race in SystemTable.getCurrentLocalNodeId (CASSANDRA-2824)
0.8.1
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java?rev=1140472&r1=1140471&r2=1140472&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java Tue Jun 28 07:58:56 2011
@@ -380,6 +380,8 @@ public class SystemTable
ColumnFamily cf = table.getColumnFamilyStore(NODE_ID_CF).getColumnFamily(filter);
if (cf != null)
{
+ // Even though gc_grace==0 on System table, we can have a race where we get back tombstones (see CASSANDRA-2824)
+ cf = ColumnFamilyStore.removeDeleted(cf, 0);
assert cf.getColumnCount() <= 1;
if (cf.getColumnCount() > 0)
id = cf.iterator().next().name();