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

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

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsAdd voteVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • 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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned Assign to me
            christianmovi Christian Spriegel

            Dates

              Created:
              Updated:

              Slack

                Issue deployment