Ondřej Černoš created CASSANDRA-5421:
----------------------------------------

             Summary: java.lang.ArrayIndexOutOfBoundsException when cassandra 
started on hibernated virtual instance
                 Key: CASSANDRA-5421
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5421
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.1
            Reporter: Ondřej Černoš


We have a cql3 table records:

{noformat}
CREATE TABLE records (
    all varchar,
    record_id varchar,
    uid varchar,
    validity bigint,
    some_property int,
    PRIMARY KEY (all, record_id)
) WITH comment = 'Records';
{noformat}

with an index:

{noformat}
CREATE INDEX tokens_uid_idx ON tokens (uid);
{noformat}

We stored a couple of values in the table before the weekend with TTL set to 
see if the records expire. The instance we tested the behaviour on was put to 
sleep during the weekend.

We started the instance yesterday on 11:31:41,809 and at 13:57:28,195 we tried 
the  following:

{noformat}
select * from tokens;
{noformat}

just to check the record were deleted on TTL.

This is what we got:

{noformat}
TSocket read 0 bytes
{noformat}

We found the following exception in the log:

{noformat}
ERROR 13:57:28,195 Error occurred during processing of message.
java.lang.ArrayIndexOutOfBoundsException: 1
        at 
org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43)
        at 
org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31)
        at 
org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:128)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:804)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:146)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:135)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:62)
        at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132)
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140)
        at 
org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1739)
        at 
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074)
        at 
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062)
        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
        at 
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199)
        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:722)
{noformat}

Second try raised the following error in {{cqlsh}}:

{noformat}
Traceback (most recent call last):
  File "bin/cqlsh", line 1001, in perform_statement_untraced
    self.cursor.execute(statement, decoder=decoder)
  File "bin/../lib/cql-internal-only-1.4.0.zip/cql-1.4.0/cql/cursor.py", line 
80, in execute
    response = self.get_response(prepared_q, cl)
  File "bin/../lib/cql-internal-only-1.4.0.zip/cql-1.4.0/cql/thrifteries.py", 
line 77, in get_response
    return self.handle_cql_execution_errors(doquery, compressed_q, compress, cl)
  File "bin/../lib/cql-internal-only-1.4.0.zip/cql-1.4.0/cql/thrifteries.py", 
line 96, in handle_cql_execution_errors
    return executor(*args, **kwargs)
  File 
"bin/../lib/cql-internal-only-1.4.0.zip/cql-1.4.0/cql/cassandra/Cassandra.py", 
line 1782, in execute_cql3_query
    self.send_execute_cql3_query(query, compression, consistency)
  File 
"bin/../lib/cql-internal-only-1.4.0.zip/cql-1.4.0/cql/cassandra/Cassandra.py", 
line 1793, in send_execute_cql3_query
    self._oprot.trans.flush()
  File 
"bin/../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TTransport.py",
 line 293, in flush
    self.__trans.write(buf)
  File 
"bin/../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TSocket.py", 
line 117, in write
    plus = self.handle.send(buff)
error: [Errno 32] Broken pipe
{noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to