You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2014/02/06 17:15:10 UTC

[1/3] git commit: Fix upgradesstables NPE for non-CF-based indexes patch by Sergio Bossa; reviewed by jbellis for CASSANDRA-6645

Updated Branches:
  refs/heads/cassandra-2.0 43e6e184b -> 45955e682
  refs/heads/trunk 3a82adb89 -> f97a981d5


Fix upgradesstables NPE for non-CF-based indexes
patch by Sergio Bossa; reviewed by jbellis for CASSANDRA-6645


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/45955e68
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/45955e68
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/45955e68

Branch: refs/heads/cassandra-2.0
Commit: 45955e6829a765cb12671f628480e9c397cb695d
Parents: 43e6e18
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Feb 6 10:14:37 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Feb 6 10:14:37 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/index/SecondaryIndexSearcher.java      |  2 +-
 .../db/index/composites/CompositesSearcher.java         |  1 +
 .../apache/cassandra/db/index/keys/KeysSearcher.java    |  1 +
 .../org/apache/cassandra/service/StorageService.java    | 12 ++++++++----
 5 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index dfbe5c6..b260b49 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.6
+ * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
  * Expose bulk loading progress over JMX (CASSANDRA-4757)
  * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
index f3e993d..e93efd1 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
@@ -63,7 +63,7 @@ public abstract class SecondaryIndexSearcher
                 continue;
 
             SecondaryIndex index = indexManager.getIndexForColumn(expression.column_name);
-            if (index == null || (expression.op != IndexOperator.EQ))
+            if (index == null || index.getIndexCfs() == null || expression.op != IndexOperator.EQ)
                 continue;
             int columns = index.getIndexCfs().getMeanColumns();
             candidates.put(index, columns);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
index aa35605..90e7089 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
@@ -80,6 +80,7 @@ public class CompositesSearcher extends SecondaryIndexSearcher
         final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
         final CompositesIndex index = (CompositesIndex)indexManager.getIndexForColumn(primary.column_name);
         assert index != null;
+        assert index.getIndexCfs() != null;
         final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
 
         if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index e14f865..5d82ba0 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@ -63,6 +63,7 @@ public class KeysSearcher extends SecondaryIndexSearcher
         final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
         final SecondaryIndex index = indexManager.getIndexForColumn(primary.column_name);
         assert index != null;
+        assert index.getIndexCfs() != null;
         final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
 
         if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 9a6b50f..26846e7 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2297,8 +2297,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 {
                     for (SecondaryIndex si : cfStore.indexManager.getIndexes())
                     {
-                        logger.info("adding secondary index {} to operation", si.getIndexName());
-                        valid.add(si.getIndexCfs());
+                        if (si.getIndexCfs() != null) {
+                            logger.info("adding secondary index {} to operation", si.getIndexName());
+                            valid.add(si.getIndexCfs());
+                        }
                     }
 
                 }
@@ -2346,8 +2348,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 {
                     for(SecondaryIndex si : cfStore.indexManager.getIndexes())
                     {
-                        logger.info("adding secondary index {} to operation", si.getIndexName());
-                        valid.add(si.getIndexCfs());
+                        if (si.getIndexCfs() != null) {
+                            logger.info("adding secondary index {} to operation", si.getIndexName());
+                            valid.add(si.getIndexCfs());
+                        }
                     }
                 }
             }


[2/3] git commit: Fix upgradesstables NPE for non-CF-based indexes patch by Sergio Bossa; reviewed by jbellis for CASSANDRA-6645

Posted by jb...@apache.org.
Fix upgradesstables NPE for non-CF-based indexes
patch by Sergio Bossa; reviewed by jbellis for CASSANDRA-6645


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/45955e68
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/45955e68
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/45955e68

Branch: refs/heads/trunk
Commit: 45955e6829a765cb12671f628480e9c397cb695d
Parents: 43e6e18
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Feb 6 10:14:37 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Feb 6 10:14:37 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../cassandra/db/index/SecondaryIndexSearcher.java      |  2 +-
 .../db/index/composites/CompositesSearcher.java         |  1 +
 .../apache/cassandra/db/index/keys/KeysSearcher.java    |  1 +
 .../org/apache/cassandra/service/StorageService.java    | 12 ++++++++----
 5 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index dfbe5c6..b260b49 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.6
+ * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
  * Expose bulk loading progress over JMX (CASSANDRA-4757)
  * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
index f3e993d..e93efd1 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
@@ -63,7 +63,7 @@ public abstract class SecondaryIndexSearcher
                 continue;
 
             SecondaryIndex index = indexManager.getIndexForColumn(expression.column_name);
-            if (index == null || (expression.op != IndexOperator.EQ))
+            if (index == null || index.getIndexCfs() == null || expression.op != IndexOperator.EQ)
                 continue;
             int columns = index.getIndexCfs().getMeanColumns();
             candidates.put(index, columns);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
index aa35605..90e7089 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
@@ -80,6 +80,7 @@ public class CompositesSearcher extends SecondaryIndexSearcher
         final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
         final CompositesIndex index = (CompositesIndex)indexManager.getIndexForColumn(primary.column_name);
         assert index != null;
+        assert index.getIndexCfs() != null;
         final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
 
         if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index e14f865..5d82ba0 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@ -63,6 +63,7 @@ public class KeysSearcher extends SecondaryIndexSearcher
         final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
         final SecondaryIndex index = indexManager.getIndexForColumn(primary.column_name);
         assert index != null;
+        assert index.getIndexCfs() != null;
         final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
 
         if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45955e68/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 9a6b50f..26846e7 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2297,8 +2297,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 {
                     for (SecondaryIndex si : cfStore.indexManager.getIndexes())
                     {
-                        logger.info("adding secondary index {} to operation", si.getIndexName());
-                        valid.add(si.getIndexCfs());
+                        if (si.getIndexCfs() != null) {
+                            logger.info("adding secondary index {} to operation", si.getIndexName());
+                            valid.add(si.getIndexCfs());
+                        }
                     }
 
                 }
@@ -2346,8 +2348,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 {
                     for(SecondaryIndex si : cfStore.indexManager.getIndexes())
                     {
-                        logger.info("adding secondary index {} to operation", si.getIndexName());
-                        valid.add(si.getIndexCfs());
+                        if (si.getIndexCfs() != null) {
+                            logger.info("adding secondary index {} to operation", si.getIndexName());
+                            valid.add(si.getIndexCfs());
+                        }
                     }
                 }
             }


[3/3] git commit: merge from 2.0

Posted by jb...@apache.org.
merge from 2.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f97a981d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f97a981d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f97a981d

Branch: refs/heads/trunk
Commit: f97a981d560539565db540263eff3b0c80dbab8e
Parents: 3a82adb 45955e6
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Feb 6 10:15:04 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Feb 6 10:15:04 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                             |  2 ++
 .../cassandra/db/index/SecondaryIndexSearcher.java      |  8 ++++++++
 .../db/index/composites/CompositesSearcher.java         |  1 +
 .../apache/cassandra/db/index/keys/KeysSearcher.java    |  1 +
 .../org/apache/cassandra/service/StorageService.java    | 12 ++++++++----
 5 files changed, 20 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97a981d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 745e50b,b260b49..ddb6984
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,34 -1,6 +1,36 @@@
 +2.1
 + * add listsnapshots command to nodetool (CASSANDRA-5742)
 + * Introduce AtomicBTreeColumns (CASSANDRA-6271)
 + * Multithreaded commitlog (CASSANDRA-3578)
 + * allocate fixed index summary memory pool and resample cold index summaries 
 +   to use less memory (CASSANDRA-5519)
 + * Removed multithreaded compaction (CASSANDRA-6142)
 + * Parallelize fetching rows for low-cardinality indexes (CASSANDRA-1337)
 + * change logging from log4j to logback (CASSANDRA-5883)
 + * switch to LZ4 compression for internode communication (CASSANDRA-5887)
 + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971)
 + * Remove 1.2 network compatibility code (CASSANDRA-5960)
 + * Remove leveled json manifest migration code (CASSANDRA-5996)
 + * Remove CFDefinition (CASSANDRA-6253)
 + * Use AtomicIntegerFieldUpdater in RefCountedMemory (CASSANDRA-6278)
 + * User-defined types for CQL3 (CASSANDRA-5590)
 + * Use of o.a.c.metrics in nodetool (CASSANDRA-5871, 6406)
 + * Batch read from OTC's queue and cleanup (CASSANDRA-1632)
 + * Secondary index support for collections (CASSANDRA-4511, 6383)
 + * SSTable metadata(Stats.db) format change (CASSANDRA-6356)
 + * Push composites support in the storage engine
 +   (CASSANDRA-5417, CASSANDRA-6520)
 + * Add snapshot space used to cfstats (CASSANDRA-6231)
 + * Add cardinality estimator for key count estimation (CASSANDRA-5906)
 + * CF id is changed to be non-deterministic. Data dir/key cache are created
 +   uniquely for CF id (CASSANDRA-5202)
 + * New counters implementation (CASSANDRA-6504)
 + * Replace UnsortedColumns usage with ArrayBackedSortedColumns (CASSANDRA-6630)
 +
 +
  2.0.6
+  * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
+  * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
   * Expose bulk loading progress over JMX (CASSANDRA-4757)
   * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)
  Merged from 1.2:

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97a981d/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
index a508a15,e93efd1..23f259b
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
@@@ -63,11 -59,11 +63,19 @@@ public abstract class SecondaryIndexSea
          for (IndexExpression expression : clause)
          {
              // skip columns belonging to a different index type
 -            if (!columns.contains(expression.column_name))
 +            if (!columns.contains(expression.column))
                  continue;
  
++<<<<<<< HEAD
 +            SecondaryIndex index = indexManager.getIndexForColumn(expression.column);
 +            if (index == null || !expression.operator.allowsIndexQuery())
++||||||| merged common ancestors
++            SecondaryIndex index = indexManager.getIndexForColumn(expression.column_name);
++            if (index == null || (expression.op != IndexOperator.EQ))
++=======
+             SecondaryIndex index = indexManager.getIndexForColumn(expression.column_name);
+             if (index == null || index.getIndexCfs() == null || expression.op != IndexOperator.EQ)
++>>>>>>> cassandra-2.0
                  continue;
              int columns = index.getIndexCfs().getMeanColumns();
              candidates.put(index, columns);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97a981d/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
index 7dba9b0,90e7089..b441ff1
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
@@@ -78,8 -78,9 +78,9 @@@ public class CompositesSearcher extend
          // to each row matching that clause.
          // TODO: allow merge join instead of just one index + loop
          final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
 -        final CompositesIndex index = (CompositesIndex)indexManager.getIndexForColumn(primary.column_name);
 +        final CompositesIndex index = (CompositesIndex)indexManager.getIndexForColumn(primary.column);
          assert index != null;
+         assert index.getIndexCfs() != null;
          final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
  
          if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97a981d/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index 2ed888f,5d82ba0..d491c93
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@@ -65,8 -61,9 +65,9 @@@ public class KeysSearcher extends Secon
          // to each row matching that clause.
          // TODO: allow merge join instead of just one index + loop
          final IndexExpression primary = highestSelectivityPredicate(filter.getClause());
 -        final SecondaryIndex index = indexManager.getIndexForColumn(primary.column_name);
 +        final SecondaryIndex index = indexManager.getIndexForColumn(primary.column);
          assert index != null;
+         assert index.getIndexCfs() != null;
          final DecoratedKey indexKey = index.getIndexKeyFor(primary.value);
  
          if (logger.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97a981d/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------