[ https://issues.apache.org/jira/browse/CASSANDRA-14948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16886254#comment-16886254 ]
Aleksey Yeschenko edited comment on CASSANDRA-14948 at 7/16/19 4:16 PM: ------------------------------------------------------------------------ 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], [CI|https://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. was (Author: iamaleksey): 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-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org