cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-13813) Don't let user drop (or generally break) tables in system_distributed
Date Tue, 29 Aug 2017 12:51:02 GMT


Aleksey Yeschenko commented on CASSANDRA-13813:

Not having {{system_distributed}} in {{ALTERABLE_SYSTEM_KEYSPACES}} is an oversight from the
patch that added {{system_distributed}}.

Had it been added correctly, CASSANDRA-13812 would not be a problem - {{ClientState.preventSystemKSSchemaModification()}}
would've forbidden those drops.

The constant is there to enumerate the keyspace whose tables cannot be modified, and that's
the purpose it serves. It might not have the best possible name, though, or be ideally documented.

I'd start with adding {{system_distributed}} to {{ALTERABLE_SYSTEM_KEYSPACES}} - that would
immediately fix CASSANDRA-13812 and this ticket. Then rename {{ALTERABLE_SYSTEM_KEYSPACES}}
to something more descriptive (even {{PARTIALLY_ALTERABLE_SYSTEM_KEYSPACES}} would be a start.
And document the intent.

> Don't let user drop (or generally break) tables in system_distributed
> ---------------------------------------------------------------------
>                 Key: CASSANDRA-13813
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sylvain Lebresne
>             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|].
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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message