cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Tunnicliffe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-9310) Table change response returns as keyspace change response
Date Wed, 13 May 2015 17:28:05 GMT

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

Sam Tunnicliffe commented on CASSANDRA-9310:
--------------------------------------------

[~thobbs]fair enough, I'll defer to you on all matters driver-related. In that case, the 2.0
patch LGTM but the previous comment on the 2.1 patch still stands. I don't think it needs
a separate patch as the merge conflicts are pretty trivial, I just think we should take the
new {{columnFamily()}} impl and drop the existing one. 

As for 1.2, the patch applies cleanly and looks reasonable but do we really expect to cut
any further 1.2 releases now?

On cassci the 2.0 test runs look fine, but the 2.1 jobs failed due to the compilation error
so we should probably have a clean run of that before committing.

> Table change response returns as keyspace change response
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-9310
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9310
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: C* 1.2.19 and 2.0.14 | python-driver master (upcoming v. 2.6)
>            Reporter: Kishan Karunaratne
>            Assignee: Carl Yeksigian
>             Fix For: 2.1.x, 2.0.x
>
>         Attachments: 9310-1.2.txt, 9310-2.0.txt, 9310-2.1.txt
>
>
> When an index is dropped, its existence is still persisted across the keyspace metadata.
This happens because the response to drop the index from the metadata is never received, as
a keyspace change response is (incorrectly) received by the driver instead of a table change
response. Related to PYTHON-241: https://datastax-oss.atlassian.net/browse/PYTHON-241
> Test:
> {noformat}
> self.session.execute("CREATE TABLE %s (k int PRIMARY KEY, a int)" % self.table_name)
> ks_meta = self.cluster.metadata.keyspaces[self.keyspace_name]
> table_meta = ks_meta.tables[self.table_name]
> self.assertNotIn('a_idx', ks_meta.indexes)
> self.assertNotIn('b_idx', ks_meta.indexes)
> self.assertNotIn('a_idx', table_meta.indexes)
> self.assertNotIn('b_idx', table_meta.indexes)
> self.session.execute("CREATE INDEX a_idx ON %s (a)" % self.table_name)
> self.session.execute("ALTER TABLE %s ADD b int" % self.table_name)
> self.session.execute("CREATE INDEX b_idx ON %s (b)" % self.table_name)
> ks_meta = self.cluster.metadata.keyspaces[self.keyspace_name]
> table_meta = ks_meta.tables[self.table_name]
> self.assertIsInstance(ks_meta.indexes['a_idx'], IndexMetadata)
> self.assertIsInstance(ks_meta.indexes['b_idx'], IndexMetadata)
> self.assertIsInstance(table_meta.indexes['a_idx'], IndexMetadata)
> self.assertIsInstance(table_meta.indexes['b_idx'], IndexMetadata)
> # both indexes updated when index dropped
> self.session.execute("DROP INDEX a_idx")
> ks_meta = self.cluster.metadata.keyspaces[self.keyspace_name]
> table_meta = ks_meta.tables[self.table_name]
> self.assertNotIn('a_idx', ks_meta.indexes)
> {noformat}
> Output:
> {noformat}
> AssertionError: 'a_idx' unexpectedly found in {u'b_idx': <cassandra.metadata.IndexMetadata
object at 0x7f2dd87d4590>, u'a_idx': <cassandra.metadata.IndexMetadata object at 0x7f2dd87d4a10>}
> {noformat}
> Debug log:
> {noformat}
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'CREATED',
'table': u''}, trace_id=None)>
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: , Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Fetched keyspace info for index_map_tests,
rebuilding metadata
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched keyspace info for index_map_tests,
rebuilding metadata
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'CREATED',
'table': u'test_index_updates'}, trace_id=None)>
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: test_index_updates, Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'UPDATED',
'table': u'test_index_updates'}, trace_id=None)>
> cassandra.cluster: DEBUG: Ignoring schedule_unique for already-scheduled task: (<bound
method ControlConnection.refresh_schema of <cassandra.cluster.ControlConnection object
at 0x7f9c6864fc90>>, (u'index_map_tests', u'test_index_updates', None))
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: test_index_updates, Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'UPDATED',
'table': u'test_index_updates'}, trace_id=None)>
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: test_index_updates, Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: test_index_updates, Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'UPDATED',
'table': u'test_index_updates'}, trace_id=None)>
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.cluster: DEBUG: [control connection] Fetched table info for index_map_tests.test_index_updates,
rebuilding metadata
> cassandra.connection: DEBUG: Message pushed from server: <EventMessage(stream_id=-1,
event_type=u'SCHEMA_CHANGE', event_args={'keyspace': u'index_map_tests', 'change_type': u'UPDATED',
'table': u'test_index_updates'}, trace_id=None)>
> cassandra.cluster: DEBUG: Refreshing schema in response to schema change. Keyspace: index_map_tests;
Table: , Type: None
> cassandra.cluster: DEBUG: [control connection] Waiting for schema agreement
> cassandra.cluster: DEBUG: [control connection] Schemas mismatched, trying again
> cassandra.cluster: DEBUG: [control connection] Schemas match
> cassandra.cluster: DEBUG: [control connection] Fetched keyspace info for index_map_tests,
rebuilding metadata
> {noformat}



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

Mime
View raw message