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

getColumnFamily() return null, which is not checked in ColumnFamilyStore.java scan() method, causing Timeout Exception in query

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 0.7.6
    • None
    • None
    • Hector 0.7.0-28, Cassandra 0.7.4, Windows 7, Eclipse

    • Normal

    Description

      ColumnFamilyStore.java, line near 1680, "ColumnFamily data = getColumnFamily(new QueryFilter(dk, path, firstFilter))", the data is returned null, causing NULL exception in "satisfies(data, clause, primary)" which is not captured. The callback got timeout and return a Timeout exception to Hector.

      The data is empty, as I traced, I have the the columns Count as 0 in removeDeletedCF(), which return the null there. (I am new and trying to understand the logics around still). Instead of crash to NULL, could we bypass the data?

      About my test:
      A stress-test program to add, modify and delete data to keyspace. I have 30 threads simulate concurrent users to perform the actions above, and do a query to all rows periodically. I have Column Family with rows (as File) and columns as index (e.g. userID, fileType).

      No issue on the first day of test, and stopped for 3 days. I restart the test on 4th day, 1 of the users failed to query the files (timeout exception received). Most of the users are still okay with the query.

      Attachments

        1. 2401-v3.txt
          9 kB
          Jonathan Ellis
        2. 2401-v2.txt
          9 kB
          Jonathan Ellis
        3. 2401.txt
          9 kB
          Jonathan Ellis

        Activity

          People

            jbellis Jonathan Ellis
            karshiang Tey Kar Shiang
            Jonathan Ellis
            Sylvain Lebresne
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: