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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to