[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233546#comment-15233546 ] DOAN DuyHai commented on CASSANDRA-11525: - [~xedin] [~jrwest] OK the fix is confirmed. I have fetched successfully ~36 millions CQL rows using the index without the exception Good job and thanks for fixing this tricky bug > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233284#comment-15233284 ] Pavel Yaskevich commented on CASSANDRA-11525: - [~doanduyhai] I've force pushed updated code/tests to the CASSANDRA-11525 branch (testall/dtest are currently running). If you want to verify everything you (unfortunately) will have to rebuild indexes again, but this time you can only do it on the ma-2164 sstable everything else in unaffected. I'm going to wait until testall/dtest completes and merge everything to unblock 3.5 release. > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233209#comment-15233209 ] Jordan West commented on CASSANDRA-11525: - [~doanduyhai] we have tracked down the root cause of the bug and it has affected all versions of SASI since its original inclusion in Cassandra. The issue is that when positions in the -Index.db file are > Integer.MAX_VALUE the positions are factored into a 32-bit and 16-bit value. The 16-bit value was being read as a signed short and for certain positions this resulted in reconstructing an incorrect 64-bit offset from the 32-bit and 16-bit parts. Thankfully, this is a quick, one-line fix (reading the short as unsigned), and is entirely independent of the changes in CASSANDRA-11383 or this ticket. We will include the fix for this with the merge of the changes in this ticket. We are working on final verification using your SSTables before we merge. > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233148#comment-15233148 ] Pavel Yaskevich commented on CASSANDRA-11525: - [~doanduyhai] Thanks for the information! We can reproduce it now, trying with 3.4 to make sure it's the bug we introduced in CASSANDRA-11383, will keep you posted. > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233064#comment-15233064 ] DOAN DuyHai commented on CASSANDRA-11525: - [~xedin] Output of my java tester: {noformat} 1518 : youtube 1520 : vevo 1522 : vevo 1524 : youtube 1526 : spotify Exception in thread "main" com.datastax.driver.core.exceptions.ReadFailureException: Cassandra failure during read query at consistency LOCAL_ONE (1 responses were required but only 0 replica responded, 1 failed) at com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:85) at com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:27) at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37) at com.datastax.driver.core.ArrayBackedResultSet$MultiPage.prepareNextRow(ArrayBackedResultSet.java:308) at com.datastax.driver.core.ArrayBackedResultSet$MultiPage.isExhausted(ArrayBackedResultSet.java:265) at com.datastax.driver.core.ArrayBackedResultSet$1.hasNext(ArrayBackedResultSet.java:136) at fr.sacem.sharon.SASIBench.execute(SASIBench.java:61) at fr.sacem.sharon.SASIBench.main(SASIBench.java:86) Caused by: com.datastax.driver.core.exceptions.ReadFailureException: Cassandra failure during read query at consistency LOCAL_ONE (1 responses were required but only 0 replica responded, 1 failed) {noformat} Root cause in a `system.log` {noformat} WARN [SharedPool-Worker-1] 2016-04-09 00:15:05,214 AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread Thread[SharedPool-Worker-1,5,main]: {} java.lang.ArrayIndexOutOfBoundsException: 117 at org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:149) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.utils.MergeIterator$TrivialOneToOne.computeNext(MergeIterator.java:484) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] at org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:72) ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] {noformat} > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee:
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232878#comment-15232878 ] Pavel Yaskevich commented on CASSANDRA-11525: - [~doanduyhai] Thanks, we got it running now trying to reproduce with the SI files you have included. Also the {{CREATE INDEX}} command you added to description creates index with different name, it doesn't have "_int_" which SI files do have. > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232848#comment-15232848 ] DOAN DuyHai commented on CASSANDRA-11525: - [~xedin] Statistics files uploaded In the mean time I'm re-testing > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232809#comment-15232809 ] Pavel Yaskevich commented on CASSANDRA-11525: - [~doanduyhai] ok. we are working on reproducing locally. In the meantime would you be able to test against 3.4 to help us confirm/deny whether the issue was caused by the changes in CASSANDRA-11383. Also, can you provide the output of running your script so we can determine specifically where it errored out? Can you please also add Stats component which is currently missing, without it we can't to do much? > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232797#comment-15232797 ] DOAN DuyHai commented on CASSANDRA-11525: - [~xedin] [~jrwest] The patch does not solve the issue. The exception occurs after fetching 15 260 000 rows using the index. Below is my Java test: {noformat} String query = "SELECT dsp_code, unic_work, paying_net_qty FROM test.resource_bench WHERE period_end_month_int = 201401"; final PreparedStatement ps = session.prepare(query); System.out.println("* Execution query : " + ps.getQueryString() + " \n"); System.out.println("Start date = " + new Date() + "\n"); long count = 0; int fetchSize = 2; int sleepTimeInMs = 20; final BoundStatement bs = ps.bind(); bs.setFetchSize(fetchSize); bs.setReadTimeoutMillis(9); final ResultSet resultSet = session.execute(bs); final Iterator iterator = resultSet.iterator(); while (iterator.hasNext()) { count ++; final Row row = iterator.next(); if (count % fetchSize == 0) { System.out.println(count + " : " + row.getString("dsp_code") ); // Give the system some time to breath Thread.sleep(sleepTimeInMs); } } System.out.println("End date = " + new Date()); System.out.println("Fetched rows = " + count); {noformat} It took a while to hit the 15 million rows but I eventually fall into the same exception. You can try to reproduce now that you have all the SSTables > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232115#comment-15232115 ] DOAN DuyHai commented on CASSANDRA-11525: - Ok, all the files are uploaded to Google Drive One SSTable (*ma-2164*) is too big so that I had to split it into chunks of 1Gb. To merge them, type {{cat ma-2164-big-Data.db_split.tgz_* | tar xz}} > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232113#comment-15232113 ] DOAN DuyHai commented on CASSANDRA-11525: - Rebuilding now the index with the fix from branch [CASSANDRA-11525] Also, I'm uploading all the files to Google drive, it will take a while to complete but I guess when you wake up in SF they'll be ready > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.advance(MergeIterator.java:186) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:106) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.plan.QueryPlan$ResultIterator.computeNext(QueryPlan.java:71) >
[jira] [Commented] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15231597#comment-15231597 ] Jordan West commented on CASSANDRA-11525: - ||branch||testall||dtest|| |[CASSANDRA-11525|https://github.com/xedin/cassandra/tree/CASSANDRA-11525]|[testall|http://cassci.datastax.com/job/xedin-CASSANDRA-11525-testall/]|[dtest|http://cassci.datastax.com/job/xedin-CASSANDRA-11525-dtest/]| [~doanduyhai] can you try this branch and see if it addresses the issue? Also, can you please upload all of the SSTable components (including SSTable index files) so we can test here as well? The issue was caused by an invalid assumption when clustering columns are used: when stitching together multiple index parts it was possible that the same term, for the same token was in multiple parts, resulting in the union iterator returning the incorrect count. The new approach counts the number of tokens while performing the first iteration. The complexity of the algorithm has not changed and it should be similar in performance. > StaticTokenTreeBuilder should respect posibility of duplicate tokens > > > Key: CASSANDRA-11525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11525 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Cassandra 3.5-SNAPSHOT >Reporter: DOAN DuyHai >Assignee: Jordan West > Fix For: 3.5 > > > Bug reproduced in *Cassandra 3.5-SNAPSHOT* (after the fix of OOM) > {noformat} > create table if not exists test.resource_bench ( > dsr_id uuid, > rel_seq bigint, > seq bigint, > dsp_code varchar, > model_code varchar, > media_code varchar, > transfer_code varchar, > commercial_offer_code varchar, > territory_code varchar, > period_end_month_int int, > authorized_societies_txt text, > rel_type text, > status text, > dsp_release_code text, > title text, > contributors_name list, > unic_work text, > paying_net_qty bigint, > PRIMARY KEY ((dsr_id, rel_seq), seq) > ) WITH CLUSTERING ORDER BY (seq ASC); > CREATE CUSTOM INDEX resource_period_end_month_int_idx ON test.resource_bench > (period_end_month_int) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH > OPTIONS = {'mode': 'PREFIX'}; > {noformat} > So the index is a {{DENSE}} numerical index. > When doing the request {{SELECT dsp_code, unic_work, paying_net_qty FROM > test.resource_bench WHERE period_end_month_int = 201401}} using server-side > paging. > I bumped into this stack trace: > {noformat} > WARN [SharedPool-Worker-1] 2016-04-06 00:00:30,825 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-1,5,main]: {} > java.lang.ArrayIndexOutOfBoundsException: -55 > at > org.apache.cassandra.db.ClusteringPrefix$Serializer.deserialize(ClusteringPrefix.java:268) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:128) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.Serializers$2.deserialize(Serializers.java:120) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.IndexHelper$IndexInfo$Serializer.deserialize(IndexHelper.java:148) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:218) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.io.sstable.format.SSTableReader.keyAt(SSTableReader.java:1823) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:168) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.SSTableIndex$DecoratedKeyFetcher.apply(SSTableIndex.java:155) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:518) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.disk.TokenTree$KeyIterator.computeNext(TokenTree.java:504) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.tryToComputeNext(AbstractIterator.java:116) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.index.sasi.utils.AbstractIterator.hasNext(AbstractIterator.java:110) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at > org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:374) > ~[apache-cassandra-3.5-SNAPSHOT.jar:3.5-SNAPSHOT] > at >