[ https://issues.apache.org/jira/browse/CASSANDRA-6629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Stepura updated CASSANDRA-6629: --------------------------------------- Attachment: CASSANDRA-2-6629-v2.patch bq. Can we just get away with a 'nextCalled' boolean? set it to true in next(), set it back to false in remove()? Totally makes sense. bq. That, and I'd rather we just threw IllegalStateException with no message, like the stdlib iterators do (w/ no need for Preconditions) Adjusted. v2 of the patch (for 2.0.x) attached. > Coordinator's "java.lang.ArrayIndexOutOfBoundsException: -1" with CL > 1 > ------------------------------------------------------------------------ > > Key: CASSANDRA-6629 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6629 > Project: Cassandra > Issue Type: Bug > Components: API > Environment: 15 nodes, 2.0.4, RF=3 > Reporter: Roman Skvazh > Assignee: Mikhail Stepura > Fix For: 2.0.5 > > Attachments: CASSANDRA-2-6629-v2.patch, CASSANDRA-2.0-6629.patch > > > I've got this error in system.log on all coordinators > {noformat} > ERROR [Thrift:37555] 2014-01-28 19:53:51,547 CustomTThreadPoolServer.java > (line 212) Error occurred during processing of message. > java.lang.ArrayIndexOutOfBoundsException: -1 > at java.util.ArrayList.elementData(ArrayList.java:400) > at java.util.ArrayList.remove(ArrayList.java:477) > at > org.apache.cassandra.db.ArrayBackedSortedColumns$ReverseSortedCollection$1.remove(ArrayBackedSortedColumns.java:373) > at > org.apache.cassandra.db.filter.SliceQueryFilter.trim(SliceQueryFilter.java:249) > at > org.apache.cassandra.db.SliceFromReadCommand.maybeTrim(SliceFromReadCommand.java:101) > at > org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:1370) > at > org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:1189) > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:188) > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:163) > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:58) > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:188) > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:212) > at > org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1958) > at > org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4486) > at > org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4470) > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > at > org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > {noformat} > It's occurred on coordinator (not always primary or secondary of this uid-PK) > when I execute query (PHP or Python client got "TSocket read 0 bytes" > exception): > {code:sql}SELECT * FROM home_timeline WHERE uid = 0x52dcbc794989a6ea2c8b4569 > ORDER BY tuuid DESC LIMIT 32{code} > If limit < 32, then its ok. When ORDER ... ASC its ok. When ConsistencyLevel > 1 its ok. > On one node data is inconsistent with two others, and read repair won't work > (32-nd element is odd). > Our RF = 3 > Cassandra version 2.0.4 -- This message was sent by Atlassian JIRA (v6.1.5#6160)