[ 
https://issues.apache.org/jira/browse/CASSANDRA-21619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Semb Wever updated CASSANDRA-21619:
-------------------------------------------
                Change Category: Operability
                     Complexity: Low Hanging Fruit
                  Fix Version/s: 7.x
    Test and Documentation Plan: 
ColumnsTest (9 tests), SerializationHeaderTest (7 tests) and RowFilterTest (2 
tests) pass on JDK 17.

ColumnsTest gains testDeserializeUnknownColumnNamesTheTable, which asserts the 
whole message. It fails on unpatched trunk.

jvm-dtest SchemaTest.readRepair and SchemaTest.readRepairWithCompaction pass. 
Neither reaches the message on this machine: with the assertion string altered 
on purpose, both still pass, so the select in selectExpectingError does not 
throw here. The assertion is updated all the same, because it must match 
production wherever it does throw. SchemaTest.schemaPropagationToDownNode fails 
on this machine for an unrelated reason, a bind failure on 127.0.0.2:7012.
                       Priority: Low  (was: Normal)

> Name the keyspace and table when deserialization meets an unknown column
> ------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21619
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21619
>             Project: Apache Cassandra
>          Issue Type: Improvement
>          Components: Observability/Logging
>            Reporter: Michael Semb Wever
>            Priority: Low
>             Fix For: 7.x
>
>
> CASSANDRA-18346 added the keyspace and the table to the unknown column error 
> in {{ColumnSubselection}}:
> {code}
> Unknown column id in table cycling.route during deserialization
> {code}
> Three sibling sites still report the column name alone:
> * {{Columns.Serializer.deserialize}}
> * {{SerializationHeader.Component.toHeader}}
> * {{RowFilter.Expression.Serializer.deserialize}}
> {code:java}
> throw new RuntimeException("Unknown column " + 
> UTF8Type.instance.getString(name) + " during deserialization");
> {code}
> A column name such as {{id}} is rarely unique across a schema, so an operator 
> who reads the message in a log cannot tell which table failed. The message 
> reaches the log during schema propagation, which is when it matters most.
> The patch reports the keyspace and the table at all three sites, in the 
> wording CASSANDRA-18346 established. {{SchemaTest.selectExpectingError}} 
> matched the old message, so it now matches the new one.
> Patch: 
> [mck/upstream/unknown-column-table-name/trunk|https://github.com/thelastpickle/cassandra/tree/mck/upstream/unknown-column-table-name/trunk]
> Provenance: 
> [721f34c6a0|https://github.com/datastax/cassandra/commit/721f34c6a0072eed1efc05c1e460c445a01bea22]
>  by Brandon Williams. That commit changes {{Columns}} alone; this patch 
> extends the same change to the two remaining sites.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to