Details
-
Bug
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
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:
- docker run -d --name cassandra cassandra:latest
- 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
- docker exec -ti cassandra cqlsh -e 'ALTER TABLE mview.users ADD ( asdasdasd set<frozen<set>>);'
- 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)