[
https://issues.apache.org/jira/browse/CASSANDRA-13813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16194441#comment-16194441
]
Sylvain Lebresne commented on CASSANDRA-13813:
----------------------------------------------
So the thing is that due to how the existing code is work, we currently allow
anything on the tables of the {{system_distributed}} tables. And while I doubt
there is any debate that we shouldn't let use drop those tables, or even
drop/rename columns of those tables, some user may have been relying on
altering these table _properties_. CASSANDRA-12701 particularly comes to mind
here: it's kind of a bug that the repair tables in there don't have TTLs and so
user may have legitimately work around it by adding the table TTL themselves.
The attached patch will remove the ability for this work-around (to be extra
precise, user that have already changed the properties would obviously be fine,
it's new user wanting to do it that wouldn't be able to), and this feels
uncomfortable to do in minor releases at least.
I guess, if we make sure to commit CASSANDRA-12701 before this, we at least
remove one imo legitimate reason to modify those tables params and that would
be better. Even without that though, modifying some system tables params isn't
an entirely crazy idea (we can debate whether that's truly useful, but it's not
crazy) and this remove that ability. Don't get me wrong btw, I know that we
currently only allow this for {{system_distributed}} tables and so it's
inconsistent with other system keyspace in the first place, and I'm not
definitively saying we should allow modifying params on all system tables. I'm
just raising the point that the patch removes something that could be
considered as useful by some, and doing so in a minor concerns me a little bit.
> Don't let user drop (or generally break) tables in system_distributed
> ---------------------------------------------------------------------
>
> Key: CASSANDRA-13813
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13813
> Project: Cassandra
> Issue Type: Bug
> Components: Distributed Metadata
> Reporter: Sylvain Lebresne
> Assignee: Aleksey Yeschenko
> Fix For: 3.0.x, 3.11.x
>
>
> There is not currently no particular restrictions on schema modifications to
> tables of the {{system_distributed}} keyspace. This does mean you can drop
> those tables, or even alter them in wrong ways like dropping or renaming
> columns. All of which is guaranteed to break stuffs (that is, repair if you
> mess up with on of it's table, or MVs if you mess up with
> {{view_build_status}}).
> I'm pretty sure this was never intended and is an oversight of the condition
> on {{ALTERABLE_SYSTEM_KEYSPACES}} in
> [ClientState|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/service/ClientState.java#L397].
> That condition is such that any keyspace not listed in
> {{ALTERABLE_SYSTEM_KEYSPACES}} (which happens to be the case for
> {{system_distributed}}) has no specific restrictions whatsoever, while given
> the naming it's fair to assume the intention that exactly the opposite.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]