[ https://issues.apache.org/jira/browse/CASSANDRA-8018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Lerer reassigned CASSANDRA-8018: ----------------------------------------- Assignee: Benjamin Lerer > Cassandra seems to insert twice in custom PerColumnSecondaryIndex > ----------------------------------------------------------------- > > Key: CASSANDRA-8018 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8018 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Pavel Chlupacek > Assignee: Benjamin Lerer > Fix For: 2.1.3 > > > When inserting data into Cassandra 2.1.0 into table with custom secondary > index, the Cell is inserted twice, if inserting new entry into row with same > rowId, but different cluster index columns. > ==== > CREATE KEYSPACE fulltext WITH replication = {'class': 'SimpleStrategy', > 'replication_factor' : 1}; > CREATE TABLE fulltext.test ( id uuid, name text, name2 text, json varchar, > lucene text, primary key ( id , name)); > s"CREATE CUSTOM INDEX lucene_idx on fulltext.test(lucene) using > 'com.spinoco.fulltext.cassandra.TestIndex'; " > // this causes only one insert > insertInto("fulltext","test") > .value("id", id1.uuid) > .value("name", "goosh1") > .value("json", TestContent.message1.asJson) > // this causes 2 inserts to be done > insertInto("fulltext","test") > .value("id", id1.uuid) > .value("name", "goosh2") > .value("json", TestContent.message2.asJson) > /// stacktraces for inserts (always same, for 1st and 2nd insert) > <custom indexer stacktraces> and then > at > org.apache.cassandra.db.index.SecondaryIndexManager$StandardUpdater.insert(SecondaryIndexManager.java:707) > at > org.apache.cassandra.db.AtomicBTreeColumns$ColumnUpdater.apply(AtomicBTreeColumns.java:344) > at > org.apache.cassandra.db.AtomicBTreeColumns$ColumnUpdater.apply(AtomicBTreeColumns.java:319) > at > org.apache.cassandra.utils.btree.NodeBuilder.addNewKey(NodeBuilder.java:323) > at > org.apache.cassandra.utils.btree.NodeBuilder.update(NodeBuilder.java:191) > at org.apache.cassandra.utils.btree.Builder.update(Builder.java:74) > at org.apache.cassandra.utils.btree.BTree.update(BTree.java:186) > at > org.apache.cassandra.db.AtomicBTreeColumns.addAllWithSizeDelta(AtomicBTreeColumns.java:189) > at org.apache.cassandra.db.Memtable.put(Memtable.java:194) > at > org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:1142) > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:394) > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:351) > at org.apache.cassandra.db.Mutation.apply(Mutation.java:214) > at > org.apache.cassandra.service.StorageProxy$7.runMayThrow(StorageProxy.java:970) > at > org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2080) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > at java.lang.Thread.run(Thread.java:744) > //// Note that cell, rowkey and Group in public abstract void > insert(ByteBuffer rowKey, Cell col, OpOrder.Group opGroup); are having for > both successive calls same identity -- This message was sent by Atlassian JIRA (v6.3.4#6332)