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

CAS resultset sometimes does not contain value column even though wasApplied is false

    XMLWordPrintableJSON

    Details

    • Severity:
      Low

      Description

      Every now and then I see a ResultSet for one of my CAS queries that contain wasApplied=false, but does not contain my value column.

      I just now found another occurrence, which causes the following exception in the driver:

      ...
      Caused by: com.mycompany.MyDataaccessException: checkLock(ResultSet[ exhausted: true, Columns[[applied](boolean)]])
          at com.mycompany.MyDAO._checkLock(MyDAO.java:408)
          at com.mycompany.MyDAO._releaseLock(MyDAO.java:314)
          ... 16 more
      Caused by: java.lang.IllegalArgumentException: value is not a column defined in this metadata
          at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:266)
          at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:272)
          at com.datastax.driver.core.ArrayBackedRow.getIndexOf(ArrayBackedRow.java:81)
          at com.datastax.driver.core.AbstractGettableData.getBytes(AbstractGettableData.java:151)
          at com.mycompany.MyDAO._checkLock(MyDAO.java:383)
          ... 17 more
      

      The query the application was doing:
      delete from "Lock" where lockname=:lockname and id=:id if value=:value;

      I did some debugging recently and was able to track these ResultSets to StorageProxy.cas() to the "CAS precondition does not match current values {}" return statement.

      I saw this happening with Cassandra 3.0.10 and earlier versions.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              christianmovi Christian Spriegel
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: