[ 
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)

Reply via email to