Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 289AC172FC for ; Wed, 8 Oct 2014 23:36:34 +0000 (UTC) Received: (qmail 72606 invoked by uid 500); 8 Oct 2014 23:36:34 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 72565 invoked by uid 500); 8 Oct 2014 23:36:34 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 72553 invoked by uid 99); 8 Oct 2014 23:36:33 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Oct 2014 23:36:33 +0000 Date: Wed, 8 Oct 2014 23:36:33 +0000 (UTC) From: "Tyler Hobbs (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CASSANDRA-8073) Exception filtering data in a collection and compound primary key MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-8073?page=3Dcom.atla= ssian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-8073: ----------------------------------- Attachment: 8073.txt I was incorrect, it was not related to 8033. The problem is triggered by s= econdary index lookups on collection "keys" (set items, map keys) where a p= refix of the clustering columns are specified in the WHERE clause. The attached patch fixes the issue and adds a unit test that reproduces it. > Exception filtering data in a collection and compound primary key > ----------------------------------------------------------------- > > Key: CASSANDRA-8073 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8073 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: Mac OS, DataStax 2.1.0 Cassandra server > Reporter: Oz=C3=A9ias Sant'ana > Assignee: Tyler Hobbs > Fix For: 2.1.1 > > Attachments: 8073.txt, example.cql.sql > > > I'm trying to query using compound primary key and then collection. Is po= ssible to use partition key in the query, but as soon as you include the cl= ustering column will receive a timeout. > {code:sql} > SELECT * FROM playlists WHERE user_id =3D 91d8eb60-4db1-11e4-b217-f96a8b2= e7d2e AND tags CONTAINS 'blues'; > user_id | id = | song_order | album | artist | song_id = | tags | title > --------------------------------------+----------------------------------= ----+------------+--------------+--------+---------------------------------= -----+------------------------------------------------+----------- > 91d8eb60-4db1-11e4-b217-f96a8b2e7d2e | 62c36092-82a1-3a00-93d1-46196ee77= 204 | 1 | Tres Hombres | ZZ Top | a3e64f8f-bd44-4f28-b8d9-6938726e= 34d4 | {'blues', 'boogie rock', 'rock', 'rock blues'} | La Grange > (1 rows) > {code} > {code:sql} > SELECT * FROM playlists WHERE user_id =3D 91d8eb60-4db1-11e4-b217-f96a8b2= e7d2e AND id =3D 62c36092-82a1-3a00-93d1-46196ee77204 AND tags CONTAINS 'bl= ues'; > errors=3D{}, last_host=3D127.0.0.1 > {code} > See below the log: > {code:none} > WARN [SharedPool-Worker-2] 2014-10-07 10:23:56,437 AbstractTracingAwareE= xecutorService.java:167 - Uncaught exception on thread Thread[SharedPool-Wo= rker-2,5,main]: {} > java.lang.RuntimeException: java.lang.NullPointerException > =09at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(Sto= rageProxy.java:2047) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:= 471) ~[na:1.7.0_67] > =09at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService= $FutureTask.run(AbstractTracingAwareExecutorService.java:163) ~[apache-cass= andra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) [= apache-cassandra-2.1.0.jar:2.1.0] > =09at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] > Caused by: java.lang.NullPointerException: null > =09at org.apache.cassandra.db.marshal.Int32Type.compare(Int32Type.java:38= ) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.marshal.Int32Type.compare(Int32Type.java:28= ) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.composites.AbstractCType.compare(AbstractCT= ype.java:136) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.composites.AbstractCType.compare(AbstractCT= ype.java:40) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.AtomicBTreeColumns$3.compare(AtomicBTreeCol= umns.java:234) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.utils.btree.BTree.find(BTree.java:277) ~[apach= e-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.utils.btree.Path.find(Path.java:122) ~[apache-= cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.utils.btree.Cursor._reset(Cursor.java:107) ~[a= pache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.utils.btree.Cursor.reset(Cursor.java:91) ~[apa= che-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.utils.btree.BTree.slice(BTree.java:238) ~[apac= he-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.AtomicBTreeColumns.slice(AtomicBTreeColumns= .java:453) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.AtomicBTreeColumns.iterator(AtomicBTreeColu= mns.java:283) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.filter.SliceQueryFilter.getColumnIterator(S= liceQueryFilter.java:138) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.filter.QueryFilter.getIterator(QueryFilter.= java:57) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.CollationController.collectAllData(Collatio= nController.java:206) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.CollationController.getTopLevelColumns(Coll= ationController.java:59) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(Column= FamilyStore.java:1872) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFam= ilyStore.java:1680) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.index.composites.CompositesSearcher$1.compu= teNext(CompositesSearcher.java:183) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.index.composites.CompositesSearcher$1.compu= teNext(CompositesSearcher.java:121) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at com.google.common.collect.AbstractIterator.tryToComputeNext(Abstrac= tIterator.java:143) ~[guava-16.0.jar:na] > =09at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator= .java:138) ~[guava-16.0.jar:na] > =09at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.= java:2076) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.index.composites.CompositesSearcher.search(= CompositesSearcher.java:68) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.index.SecondaryIndexManager.search(Secondar= yIndexManager.java:579) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.ColumnFamilyStore.search(ColumnFamilyStore.= java:2064) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.db.PagedRangeCommand.executeLocally(PagedRange= Command.java:114) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.service.StorageProxy$LocalRangeSliceRunnable.r= unMayThrow(StorageProxy.java:1382) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(Sto= rageProxy.java:2044) ~[apache-cassandra-2.1.0.jar:2.1.0] > =09... 4 common frames omitted > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)