You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "James P (JIRA)" <ji...@apache.org> on 2013/09/11 04:05:52 UTC

[jira] [Created] (CASSANDRA-6004) Performing a "Select count(*)" when replication factor < node count causes assertion error and timeout

James P created CASSANDRA-6004:
----------------------------------

             Summary: Performing a "Select count(*)" when replication factor < node count causes assertion error and timeout
                 Key: CASSANDRA-6004
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6004
             Project: Cassandra
          Issue Type: Bug
          Components: API
         Environment: Two node setup
Ubuntu Server 12.04
Tested on JDK 1.6 and 1.7
            Reporter: James P


When performing a "Select Count(*)" query on a table belonging to a keyspace with a replication factor less than the total node count, the following error is encountered which ultimately results in an rpc_timeout for the request:

ERROR 18:47:54,660 Exception in thread Thread[Thread-5,5,main]
java.lang.AssertionError
	at org.apache.cassandra.db.filter.IDiskAtomFilter$Serializer.deserialize(IDiskAtomFilter.java:116)
	at org.apache.cassandra.db.RangeSliceCommandSerializer.deserialize(RangeSliceCommand.java:247)
	at org.apache.cassandra.db.RangeSliceCommandSerializer.deserialize(RangeSliceCommand.java:156)
	at org.apache.cassandra.net.MessageIn.read(MessageIn.java:99)
	at org.apache.cassandra.net.IncomingTcpConnection.receiveMessage(IncomingTcpConnection.java:148)
	at org.apache.cassandra.net.IncomingTcpConnection.handleModernVersion(IncomingTcpConnection.java:125)
	at org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:73)

The issue is not encountered when the replication factor is >= node count

To replicate the issue:
1) Create the keyspace: CREATE KEYSPACE demodb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1};

2) Create the table CREATE TABLE users (
  user_name varchar,
  password varchar,
  gender varchar,
  session_token varchar,
  state varchar,
  birth_year bigint,
  PRIMARY KEY (user_name));

3) Do a CQL query: "SELECT count(*) FROM demodb.users" ;

The issue is reproducible even if the table is empty. Both CQLSH and client (astyanax) api calls are affected. Tested on two different clusters (2-node and 8-node)

--
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