[ https://issues.apache.org/jira/browse/KUDU-3515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17772720#comment-17772720 ]
ASF subversion and git services commented on KUDU-3515: ------------------------------------------------------- Commit 959b0e67df6d86431e874eefae48700b627ba273 in kudu's branch refs/heads/branch-1.17.x from Alexey Serbin [ https://gitbox.apache.org/repos/asf?p=kudu.git;h=959b0e67d ] KUDU-3515: fix incompatibility introduced with KUDU-2671 This patch addresses the issue reported in KUDU-3515. The issue has been originally reported at the #kudu-general Slack channel [1]. The root cause of the issue is an incompatibility in the serialized representation of tablets' partition keys introduced by changelist [2]. The essence of the fix is to convert the serialized partition keys representing unbounded ends of the tables' ranges from the legacy to the new format on-the-fly while loading that information from the system catalog upon bootstrapping a leader master. This patch contains unit test scenarios for the function that performs the conversion from the legacy to the new format. Also, I verified the fix works as expected for an existing Kudu 1.16.0 cluster with a bunch of tables after upgrading the binaries to Kudu 1.17.0 bits. This is a follow-up to 8df970f7a6520bb0dc0f9cc89ad7f62ab349e84d. [1] https://getkudu.slack.com/archives/C0CPXJ3CH/p1695107377230829 [2] https://github.com/apache/kudu/commit/8df970f7a652 Change-Id: I45df424770a09cf7c94f5e1d390757f29f9fb3f4 Reviewed-on: http://gerrit.cloudera.org:8080/20525 Tested-by: Alexey Serbin <ale...@apache.org> Reviewed-by: Mahesh Reddy <mre...@cloudera.com> Reviewed-by: Abhishek Chennaka <achenn...@cloudera.com> (cherry picked from commit 9ae68af0dcd7a58c9fe754f69fb99861ba26e2ff) Reviewed-on: http://gerrit.cloudera.org:8080/20536 Tested-by: Kudu Jenkins > Unable to drop unbounded range partition from an existing table after > upgrading to 1.17.0 version > ------------------------------------------------------------------------------------------------- > > Key: KUDU-3515 > URL: https://issues.apache.org/jira/browse/KUDU-3515 > Project: Kudu > Issue Type: Bug > Components: master > Affects Versions: 1.17.0 > Reporter: Alexey Serbin > Assignee: Alexey Serbin > Priority: Major > Fix For: 1.18.0 > > > When upgraded to Kudu 1.17.0 from any prior Kudu release, it's not possible > to drop an unbounded range in an already existing table that uses hash and > range partitioning scheme (for range and hash partitioning example, see [this > documentation > page|https://kudu.apache.org/docs/schema_design.html#hash-range-partitioning-example]). > Please note: the issue only manifests itself for unbounded ranges. Also, > plain range partitioned tables (i.e. not involving range and hash > partitioning, just range-partitioned without hash sub-partition for each > range) are not affected. > Below are the steps to reproduce the issue as per the instructions posted by > the original reporter in a [message thread of the #kudu-general Slack > channel|https://getkudu.slack.com/archives/C0CPXJ3CH/p1695107377230829]. > # Create table with range partition in Kudu 1.16.0 or any prior release: > {noformat} > sudo -u kudu kudu table create <master_rpc_addr> '{ "table_name": > "default.test_drop_partition", "schema": { "columns": [ { "column_name": > "id", "column_type": "INT32", "default_value": "1" }, { "column_name": "key", > "column_type": "INT64", "is_nullable": false }, { "column_name": "name", > "column_type": "STRING", "is_nullable": false } ], "key_column_names": ["id", > "key"] }, "partition": { "hash_partitions": [{"columns": ["id"], > "num_buckets": 2, "seed": 8}], "range_partition": { "columns": ["key"], > "range_bounds": [ {"upper_bound": {"bound_type": "exclusive", "bound_values": > ["1000"]} }, { "lower_bound": {"bound_type": "inclusive", "bound_values": > ["1000"]},"upper_bound": {"bound_type": "exclusive", "bound_values": > ["2000"]} } ] } }, "num_replicas": 3 }' > {noformat} > # Upgrade to Kudu 1.17.0 and try dropping the unbounded range partition: > {noformat} > sudo -u kudu kudu table drop_range_partition <master_rpc_addr> > default.test_drop_partition [] [1000] > {noformat} > Dropping the range partition fails with the following message: > {noformat} > Invalid argument: no range partition to drop: VALUES < 1000 > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)