You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michael Semb Wever (Jira)" <ji...@apache.org> on 2026/08/27 11:31:00 UTC
[jira] [Created] (CASSANDRA-21622) TRUNCATE answers a NullPointerException when the table is dropped during execution
Michael Semb Wever created CASSANDRA-21622:
----------------------------------------------
Summary: TRUNCATE answers a NullPointerException when the table is dropped during execution
Key: CASSANDRA-21622
URL: https://issues.apache.org/jira/browse/CASSANDRA-21622
Project: Apache Cassandra
Issue Type: Bug
Components: CQL/Semantics
Reporter: Michael Semb Wever
{{TruncateStatement.validate}} calls {{Schema.instance.validateTable}}, so an unknown table is rejected before execution. A {{DROP TABLE}} that commits between {{validate}} and {{execute}} leaves no metadata, and both execution paths read {{isView()}} on the result of {{Schema.instance.getTableMetadata}} with no null test:
{code:java}
TableMetadata metaData = Schema.instance.getTableMetadata(keyspace(), name());
if (metaData.isView())
throw new InvalidRequestException("Cannot TRUNCATE materialized view directly; ...");
{code}
{{execute}} then answers a {{NullPointerException}} to the client, and {{executeLocally}} wraps one in a {{TruncateException}}, which reads as a truncation failure rather than as a table that is gone. The severity is Low because the window is the schema propagation of a concurrent drop.
The patch tests the metadata for null and reports the unknown keyspace and table, which is the message the same race already produces for other statements.
Patch: [mck/upstream/truncate-unknown-table/5.0|https://github.com/thelastpickle/cassandra/tree/mck/upstream/truncate-unknown-table/5.0]
Provenance: [5f1d03c5ed|https://github.com/datastax/cassandra/commit/5f1d03c5edf26af6078ce70de456fadc87d46fa5] by dan jatnieks. That commit adds the same two null tests; the rest of it moves {{doTruncateBlocking}} so a fork implementation can override the call, which upstream has no need of, so this patch takes the null tests alone and adds the regression test the commit lacks.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org