[ https://issues.apache.org/jira/browse/CASSANDRA-4938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17280046#comment-17280046 ]
Kirk True commented on CASSANDRA-4938: -------------------------------------- After some fumbling around in {{StorageProxy}} and {{RequestFailureReason}}, I was able to get the server to send back a response so that {{cqlsh}} now sees this: {noformat} Error from server: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures: INDEX_NOT_AVAILABLE from localhost/127.0.0.1:7000" info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'} {noformat} Thus the failure is listed as {{INDEX_NOT_AVAILABLE}} instead of {{UNKNOWN}}. In my opinion, the message is still a little unclear. I could imagine making the message a little more user-friendly: {noformat} The secondary index 'test_table_user_name_idx' is not yet available. Please check (nodetool?) to determine its completion status or wait and try the query again later. {noformat} Is it worth the effort to make the error better? In terms of {{cqlsh}}, in {{protocol.py}}, there appear to be dedicated Python classes for different types of responses, each with its own unique error code. I would imagine adding a new class/code here would cause some changes needed elsewhere? > CREATE INDEX can block for creation now that schema changes may be concurrent > ----------------------------------------------------------------------------- > > Key: CASSANDRA-4938 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4938 > Project: Cassandra > Issue Type: Improvement > Components: Feature/2i Index > Reporter: Krzysztof Cieslinski Cognitum > Assignee: Kirk True > Priority: Low > Labels: lhf > Fix For: 4.x > > > Response from CREATE INDEX command comes faster than the creation of > secondary index. So below code: > {code:xml} > CREATE INDEX ON tab(name); > SELECT * FROM tab WHERE name = 'Chris'; > {code} > doesn't return any rows(of course, in column family "tab", there are some > records with "name" value = 'Chris'..) and any errors ( i would expect > something like ??"Bad Request: No indexed columns present in by-columns > clause with Equal operator"??) > Inputing some timeout between those two commands resolves the problem, so: > {code:xml} > CREATE INDEX ON tab(name); > Sleep(timeout); // for column family with 2000 rows the timeout had to be set > for ~1 second > SELECT * FROM tab WHERE name = 'Chris'; > {code} > will return all rows with values as specified. > I'm using single node cluster. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org