Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-5945

CAS transactions permitting multiple updates

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • None
    • 3 node Cassandra 2.0.0-rc2 cluster
      Java driver 1.0.2
      Replication factor 3
      Quorum consistency

    • Normal

    Description

      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.

      Attachments

        1. TokenConsumptionTest.java
          4 kB
          Phil Persad

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ppersad Phil Persad
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: