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

cassandra-stress in user profile mode fails on handling set<set<int>> columns

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Normal
    • Resolution: Unresolved
    • 5.x
    • Tool/stress
    • None
    • Correctness - API / Semantic Implementation
    • Normal
    • Low Hanging Fruit
    • User Report
    • All
    • None

    Description

      Reason:
      c-s reads metadata from database, and build column generator from it.
      But this logic is build in a way so that it does not support generator recursion, which is necessary to support embedded collections.

      Fix:
      This fix is simple exclude this type of columns from being processed.

      Steps to reproduce:

      1. docker run -d --name cassandra cassandra:latest
      2. cassandra-stress user profile=cs_no_mv_basic_profile.yaml ops'(insert=1)' cl=ONE n=20 -pop seq=1..10000000 -port jmx=6868 -mode cql3 native -rate threads=2 -node 172.17.0.2
      3. docker exec -ti cassandra cqlsh -e 'ALTER TABLE mview.users ADD ( asdasdasd set<frozen<set>>);'
      4. cassandra-stress user profile=cs_no_mv_basic_profile.yaml ops'(insert=1)' cl=ONE n=20 -pop seq=1..10000000 -port jmx=6868 -mode cql3 native -rate threads=2 -node 172.17.0.2

      Result:
      Extra Schema Definitions: null
      Generator Configs:
      password: Size: Fixed: key=80;
      last_name: Size: Uniform: min=1,max=32;
      id: Size: Uniform: min=1,max=10;
      first_name: Size: Fixed: key=16;
      email: Size: Uniform: min=16,max=50;
      username: Size: Uniform: min=10,max=30;
      Query Definitions:
      read1: CQL:select * from mview.users where id = ? LIMIT 10;Fields:samerow;
      Token Range Queries:
      Insert Settings:
      partitions: fixed(1)
      batchtype: UNLOGGED
      Connected to cluster: , max pending requests per connection 128, max connections per host 8
      Datacenter: datacenter1; Host: /172.17.0.2:9042; Rack: rack1
      Created schema. Sleeping 1s for propagation.
      java.lang.NullPointerException
      at org.apache.cassandra.stress.StressProfile$ColumnInfo.getGenerator(StressProfile.java:760)
      at org.apache.cassandra.stress.StressProfile$ColumnInfo.getGenerator(StressProfile.java:800)
      at org.apache.cassandra.stress.StressProfile$ColumnInfo.getGenerator(StressProfile.java:800)
      at org.apache.cassandra.stress.StressProfile$ColumnInfo.getGenerator(StressProfile.java:755)
      at org.apache.cassandra.stress.StressProfile$GeneratorFactory.get(StressProfile.java:733)
      at org.apache.cassandra.stress.StressProfile$GeneratorFactory.newGenerator(StressProfile.java:726)
      at org.apache.cassandra.stress.StressProfile.newGenerator(StressProfile.java:696)
      at org.apache.cassandra.stress.StressProfile.printSettings(StressProfile.java:126)
      at org.apache.cassandra.stress.settings.StressSettings.lambda$printSettings$1(StressSettings.java:311)
      at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
      at org.apache.cassandra.stress.settings.StressSettings.printSettings(StressSettings.java:311)
      at org.apache.cassandra.stress.Stress.run(Stress.java:95)
      at org.apache.cassandra.stress.Stress.main(Stress.java:62)

      Attachments

        1. cs_no_mv_basic_profile.zip
          0.6 kB
          Dmitry Kropachev

        Activity

          People

            Unassigned Unassigned
            dkropachev Dmitry Kropachev
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 10m
                10m