[ 
https://issues.apache.org/jira/browse/CASSANDRA-11129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15136598#comment-15136598
 ] 

Pavel Yaskevich commented on CASSANDRA-11129:
---------------------------------------------

Branch 
[sasi_validation|https://github.com/xedin/cassandra/tree/sasi_validation] 
addresses this making sure that unknown mode exceptions are re-thrown as 
ConfigurationException.

> [SASI Pre-QA] Index mode validation throws exception but do not cleanup index 
> meta data
> ---------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-11129
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11129
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL
>         Environment: Tested from build 
> [CASSANDRA-11067|https://issues.apache.org/jira/browse/CASSANDRA-11067]
>            Reporter: DOAN DuyHai
>            Assignee: Pavel Yaskevich
>             Fix For: 3.4
>
>
> Tested from build 
> [CASSANDRA-11067|https://issues.apache.org/jira/browse/CASSANDRA-11067]
> {code:sql}
> CREATE KEYSPACE music WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'}  AND durable_writes = true;
> CREATE TABLE music.albums (
>     id int PRIMARY KEY,
>     title text
> );
> cqlsh:music> CREATE CUSTOM INDEX IF NOT EXISTS ON music.albums(title) USING 
> 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = { 'mode':'NORMAL'};
> ServerError: <ErrorMessage code=0000 [Server error] 
> message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException">
> {code}
>  The error message is useless, by looking into the 
> /var/log/cassandra/system.log message, the true error message is:
> *Caused by: java.lang.IllegalArgumentException: No enum constant 
> org.apache.cassandra.index.sasi.disk.OnDiskIndexBuilder.Mode.NORMAL*
>       *at java.lang.Enum.valueOf(Enum.java:238) ~[na:1.8.0_45]*
>  But worse, even the index creation fails, its metadata is not cleaned up so 
> that further attempt to create an index on the same column using the correct 
> mode also fails:
> {code:sql}
> cqlsh:music> CREATE CUSTOM INDEX IF NOT EXISTS ON music.albums(title) USING 
> 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = { 'mode':'PREFIX'};
> ServerError: <ErrorMessage code=0000 [Server error] 
> message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException">
> {code}
>  The only word-around is to drop the index. The index is not displayed by 
> *DESCRIBE TABLE albums*. It only appears in the *system_schema.indexes* 
> table...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to