You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (JIRA)" <ji...@apache.org> on 2018/01/15 20:17:00 UTC

[jira] [Created] (CASSANDRA-14168) Throw error when attempting to mutate non-existant table

Paulo Motta created CASSANDRA-14168:
---------------------------------------

             Summary: Throw error when attempting to mutate non-existant table
                 Key: CASSANDRA-14168
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14168
             Project: Cassandra
          Issue Type: Bug
            Reporter: Paulo Motta
            Assignee: Paulo Motta


When a node receives a write request for a table that was just created but it's TableMetadata is not yet registered, it will [throw a UnknownTableException|https://github.com/apache/cassandra/blob/7a40abb6a5108688fb1b10c375bb751cbb782ea4/src/java/org/apache/cassandra/schema/Schema.java#L474].

There is a small racy period though between when the {{TableMetadata}} [is registered|https://github.com/apache/cassandra/blob/88c0e29caaffab41422adc673182bb9549e735ab/src/java/org/apache/cassandra/schema/Schema.java#L642] and it's {{ColumnFamilyStore}} is [created|https://github.com/apache/cassandra/blob/88c0e29caaffab41422adc673182bb9549e735ab/src/java/org/apache/cassandra/schema/Schema.java#L643], that a write request can be [silently dropped due to ColumnFamilyStore not being instantiated|https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/src/java/org/apache/cassandra/db/Keyspace.java#L603] - even though an error is logged, the request will be completed and an ack wrongly sent to the coordinator.

This was detected during investigation of a flakiness on {{materialized_views_test.py:TestMaterializedViews.populate_mv_after_insert_wide_rows_test}}.

ps: this is not an issue before 4.0, because a new table's {{TableMetadata}} was only registered after its
 {{ColumnFamilyStore}} object [was loaded|https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/config/Schema.java#L671] (which appears to be changed by CASSANDRA-9425).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org