[ 
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]

Reply via email to