You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Phil Persad (JIRA)" <ji...@apache.org> on 2013/08/27 23:27:52 UTC

[jira] [Created] (CASSANDRA-5945) CAS transactions permitting multiple updates

Phil Persad created CASSANDRA-5945:
--------------------------------------

             Summary: CAS transactions permitting multiple updates
                 Key: CASSANDRA-5945
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5945
             Project: Cassandra
          Issue Type: Bug
          Components: Core
         Environment: 3 node Cassandra 2.0.0-rc2 cluster
Java driver 1.0.2
Replication factor 3
Quorum consistency
            Reporter: Phil Persad
         Attachments: TokenConsumptionTest.java

This bug is spawned off CASSANDRA-5925 to track an underlying issue not related to TTLs.  To reproduce:

Step 1:

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

Step 2:

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

Step 3:

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

Step 4:

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

Repeat steps 2-4 about 100,000 times.

Expectation:

For the '[applied]' column in the result sets for steps 3 and 4, exactly one should be true and one should be false.

Bug:

In a small number of cases (varying from 0.002% to 1%) both updates will report success.  See attached unit test.

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