Phil Persad created CASSANDRA-5925:
--------------------------------------

             Summary: Race condition in update lightweight transaction
                 Key: CASSANDRA-5925
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5925
             Project: Cassandra
          Issue Type: Bug
         Environment: 3 node Cassandra 2.0.0-rc2 cluster. Java driver 1.0.2.
            Reporter: Phil Persad


I'm building some tests for a Cassandra PoC.  One scenario I need to test is 
consumption of 1 time tokens.  These tokens must be consumed exactly once.  The 
cluster involved is a 3 node cluster.  All queries are run with 
ConsistencyLevel.QUORUM. I'm using the following queries:

CREATE KEYSPACE IF NOT EXISTS test WITH replication = { 'class' : 
'SimpleStrategy', 'replication_factor' : 3 };

CREATE TABLE IF NOT EXISTS tkns (tkn blob, consumed boolean, PRIMARY KEY (tkn));

INSERT INTO tkns (tkn, consumed) VALUES (?,FALSE) USING TTL 30;

UPDATE tkns USING TTL 1 SET consumed = TRUE WHERE tkn = ? IF consumed = FALSE;

I use the '[applied]' column in the result set of the update statement to 
determine whether the token has been successfully consumed or if the token is 
being replayed.

My test involves concurrently executing many sets of 1 insert and 2 update 
statements (using Session#execute on BoundStatemnts) then checking to make sure 
that only one of the updates was applied.

When I run this test with relatively few iterations (~100) my results are  what 
I expect (exactly 1 update succeeds).  At ~1000 iterations, I start seeing both 
updates reporting success in 1-2% of cases.  While my test is running, I see 
corresponding error entries in the Cassandra log:

ERROR 15:34:53,583 Exception in thread Thread[MutationStage:522,5,main]
java.lang.NullPointerException
ERROR 15:34:53,584 Exception in thread Thread[MutationStage:474,5,main]
java.lang.NullPointerException
ERROR 15:34:53,584 Exception in thread Thread[MutationStage:536,5,main]
java.lang.NullPointerException
ERROR 15:34:53,729 Exception in thread Thread[MutationStage:480,5,main]
java.lang.NullPointerException
ERROR 15:34:53,729 Exception in thread Thread[MutationStage:534,5,main]
java.lang.NullPointerException


Thanks.

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