[jira] [Updated] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Yaskevich updated CASSANDRA-11525: Resolution: Fixed Status: Resolved (was: Patch Available) Committed. > 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 > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) >
[jira] [Updated] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-11525: -- Status: Patch Available (was: Open) > 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 > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) >
[jira] [Updated] (CASSANDRA-11525) StaticTokenTreeBuilder should respect posibility of duplicate tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-11525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Yaskevich updated CASSANDRA-11525: Reviewer: Pavel Yaskevich Fix Version/s: 3.5 Summary: StaticTokenTreeBuilder should respect posibility of duplicate tokens (was: SASI index corruption) > 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