cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-13813) Don't let user drop (or generally break) tables in system_distributed
Date Fri, 06 Oct 2017 10:47:00 GMT

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


Mime
View raw message