[ https://issues.apache.org/jira/browse/CASSANDRA-10725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15029428#comment-15029428 ]
Michael Edge edited comment on CASSANDRA-10725 at 11/27/15 6:20 AM: -------------------------------------------------------------------- {color:red}Note: no need to apply patch to {{v2.1}}. {color} Applying the patch has the following benefits: * {{v3.0}}: the NPE no longer occurs and the error message returned to the user states that a MAP is not supported in cassandra-stress * {{v2.2}}: the NPE no longer occurs. However, the error message returned to the user is vague and does not mention the MAP type that caused the issue * {{v2.1}}: no benefit For versions 2.1 and 2.2 the root exception thrown from CFMetaData and CQL3Type does not provide any useful information regarding data types, unlike the v3.0 root exception. Considering this is a minor issue I don't think it's worthwhile changing those classes to provide a more informative exception - this has already been taken care of in v3.x. In v3.0, the root exception is: {code} org.apache.cassandra.exceptions.InvalidRequestException: Unknown type autogeneratedtest.map at org.apache.cassandra.cql3.CQL3Type$Raw$RawUT.prepare(CQL3Type.java:780) at org.apache.cassandra.cql3.statements.CreateTableStatement$RawStatement.prepare(CreateTableStatement.java:225) at org.apache.cassandra.config.CFMetaData.compile(CFMetaData.java:408) {code} whereas in v2.1 and v2.2 the root exception is: {code} java.lang.RuntimeException: org.apache.cassandra.exceptions.InvalidRequestException: Unknown keyspace autogeneratedtest at org.apache.cassandra.config.CFMetaData.compile(CFMetaData.java:537) {code} was (Author: michaeledge): {color:red}Note: no need to apply patch to {{v2.1}}. {color} Applying the patch has the following benefits: v3.0: the NPE no longer occurs and the error message returned to the user states that a MAP is not supported in cassandra-stress v2.2: the NPE no longer occurs. However, the error message returned to the user is vague and does not mention the MAP type that caused the issue v2.1: no benefit For versions 2.1 and 2.2 the root exception thrown from CFMetaData and CQL3Type does not provide any useful information regarding data types, unlike the v3.0 root exception. Considering this is a minor issue I don't think it's worthwhile changing those classes to provide a more informative exception - this has already been taken care of in v3.x. In v3.0, the root exception is: {code} org.apache.cassandra.exceptions.InvalidRequestException: Unknown type autogeneratedtest.map at org.apache.cassandra.cql3.CQL3Type$Raw$RawUT.prepare(CQL3Type.java:780) at org.apache.cassandra.cql3.statements.CreateTableStatement$RawStatement.prepare(CreateTableStatement.java:225) at org.apache.cassandra.config.CFMetaData.compile(CFMetaData.java:408) {code} whereas in v2.1 and v2.2 the root exception is: {code} java.lang.RuntimeException: org.apache.cassandra.exceptions.InvalidRequestException: Unknown keyspace autogeneratedtest at org.apache.cassandra.config.CFMetaData.compile(CFMetaData.java:537) {code} > Stress gives "Unknown keyspace" error when a map type is used in user profile > ----------------------------------------------------------------------------- > > Key: CASSANDRA-10725 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10725 > Project: Cassandra > Issue Type: Bug > Components: Tools > Reporter: Sebastian Estevez > Assignee: Michael Edge > Priority: Minor > Labels: stress, tools > Fix For: 3.x > > Attachments: CASSANDRA-3.0-10725-Cassandra-Stress.patch > > > Steps to reproduce: > copy the following stress.yaml: > {code}# Keyspace Name > keyspace: autogeneratedtest > > # The CQL for creating a keyspace (optional if it already exists) > keyspace_definition: | > CREATE KEYSPACE autogeneratedtest WITH replication = {'class': > 'SimpleStrategy', 'replication_factor': 1}; > > # Table name > table: smartcity_data > > # The CQL for creating a table you wish to stress (optional if it already > exists) > table_definition: > CREATE TABLE smartcity_data ( > device text, > reporter text, > time timestamp, > data_ map, > metadata_ text, > solr_query text, > timeack timestamp, > timefalse timestamp, > timeresolved timestamp, > PRIMARY KEY (device, reporter, time) > ) > ### Column Distribution Specifications ### > > columnspec: > - name: device > size: fixed(10) > population: uniform(1..10) > > - name: reporter > size: fixed(10) > population: uniform(1..10) > > - name: time > size: fixed(10) > population: uniform(1..10) > > - name: data_ > size: fixed(10) > population: uniform(1..10) > > - name: metadata_ > size: fixed(10) > population: uniform(1..10) > > - name: solr_query > size: fixed(10) > population: uniform(1..10) > > - name: timeack > size: fixed(10) > population: uniform(1..10) > > - name: timefalse > size: fixed(10) > population: uniform(1..10) > > - name: timeresolved > size: fixed(10) > population: uniform(1..10) > > > ### Batch Ratio Distribution Specifications ### > > insert: > partitions: fixed(1) # Our partition key is the domain so only > insert one per batch > > select: fixed(1)/1000 # We have 1000 posts per domain so 1/1000 > will allow 1 post per batch > > batchtype: UNLOGGED # Unlogged batches > > > # > # A list of queries you wish to run against the schema > # > queries: > likelyquery0: > cql: Select * from smartcity_data where device = ? > fields: samerow > likelyquery1: > cql: Select * from smartcity_data where device = ? and reporter = ? > fields: samerow > likelyquery2: > cql: Select * from smartcity_data where device = ? and reporter = ? and > time = ? > fields: samerow{code} > and run: > {code}cassandra-stress user profile=stress.yaml ops\(insert=1\) n=10 -rate > threads=1 > There was a problem parsing the table cql: Unknown keyspace > autogeneratedtest{code} > You'll see the following error: > {quote} > There was a problem parsing the table cql: Unknown keyspace autogeneratedtest > {quote} > The error should instead state: > {quote}Maps are not currently supported in cassandra-stress{quote} > If you replace `data_ map`, with `data_ text` it works fine. > Related: CASSANDRA-9091 -- This message was sent by Atlassian JIRA (v6.3.4#6332)