You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2019/07/16 16:14:00 UTC

[jira] [Commented] (CASSANDRA-14948) Backport dropped column checks to 3.0 and 3.11

    [ https://issues.apache.org/jira/browse/CASSANDRA-14948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16886254#comment-16886254 ] 

Aleksey Yeschenko commented on CASSANDRA-14948:
-----------------------------------------------

Hi Vincent.

I rebased the patch and made 3.0 and 3.11 versions, then made some edits. In particular, I decided to make 3.0 checks stricter than the checks that I put in 4.0: if {{kind}} is unknown, don't assume it's {{regular}}, but instead flat out reject any attempt to recreate, as it's an inherent risk. Also added some tests.

3.0: [code|https://github.com/iamaleksey/cassandra/tree/14948-3.0], [CIhttps://circleci.com/workflow-run/f3ee4263-5c51-4f83-a80a-e0993689f57f|]
3.11: [code|https://github.com/iamaleksey/cassandra/tree/14948-3.11], [CI|https://circleci.com/workflow-run/6aa72012-0d18-4e6d-a943-1d7510ca8a8d]

The change to type validation had already been made in CASSANDRA-15204 independently, so this change only covers {{kind}} validation.

> Backport dropped column checks to 3.0 and 3.11
> ----------------------------------------------
>
>                 Key: CASSANDRA-14948
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14948
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Vincent White
>            Assignee: Vincent White
>            Priority: Low
>             Fix For: 3.0.x, 3.11.x
>
>
> This is a follow on from CASSANDRA-14913 and CASSANDRA-14843 that introduced some fixes to prevent and mitigate data corruption caused by dropping a column then re-adding it with the same name but an incompatible type (e.g. simple int to a complex map<>) or different kind (regular/static). 
> This patch backports the checks that now exist in trunk. This does include adding a column to the dropped_columns table to keep track of static columns like trunk, not sure it we are able to make that change in 3.11.x. 
> Also not sure what our stance on backporting just the isValueCompatibleWith check to 3.0 is. I'd be for it since it prevents recreating a simple column as a map (or vice-versa) which will basically always lead to corruption.
> ||C* 3.11.x||
> |[Patch|https://github.com/vincewhite/cassandra/commit/3986b53b8acaf1d3691f9b35fd098a40667c520f]|



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org