[
https://issues.apache.org/jira/browse/HBASE-28481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17834771#comment-17834771
]
Hudson commented on HBASE-28481:
--------------------------------
Results for branch branch-2.4
[build #716 on
builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/716/]:
(/) *{color:green}+1 overall{color}*
----
details (if available):
(/) {color:green}+1 general checks{color}
-- For more information [see general
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/716/General_20Nightly_20Build_20Report/]
(/) {color:green}+1 jdk8 hadoop2 checks{color}
-- For more information [see jdk8 (hadoop2)
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/716/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/]
(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3)
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/716/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]
(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/716/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]
(/) {color:green}+1 source release artifact{color}
-- See build output for details.
(/) {color:green}+1 client integration test{color}
> Prompting table already exists after failing to create table with many region
> replications
> ------------------------------------------------------------------------------------------
>
> Key: HBASE-28481
> URL: https://issues.apache.org/jira/browse/HBASE-28481
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.4.13
> Environment: Centos
> Reporter: guluo
> Assignee: guluo
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.6.0, 2.4.18, 3.0.0-beta-2, 2.5.9
>
>
> Reproduction steps:
> {code:java}
> # Create table with 65537 region replications
> # we would get errors as follow, this step is no problem
> hbase:005:0> create 't01', 'info', {REGION_REPLICATION => 65537}
> ERROR: java.lang.IllegalArgumentException: ReplicaId cannot be greater
> than65535
> For usage try 'help "create"'
> Took 0.7590 seconds{code}
> {code:java}
> # list, and found the table does not exist, as follow
> hbase:006:0> list TABLE
> 0 row(s) Took 0.0100 seconds
> => []{code}
> {code:java}
> # we create this tale agin by the correct way
> # we would get message that this table already exists
> hbase:007:0> create 't01', 'info'
> ERROR: Table already exists: t01!
> For usage try 'help "create"'
> Took 0.1210 seconds {code}
>
> Reason:
> In the CreateTableProcedure, we update this table descriptor into HBase
> cluster at stage CREATE_TABLE_WRITE_FS_LAYOUT
>
> {code:java}
> env.getMasterServices().getTableDescriptors().update(tableDescriptor, true);
> {code}
>
> and then, we check if the Region Replication Count is legal at stage
> CREATE_TABLE_ADD_TO_META.
>
>
> {code:java}
> newRegions = addTableToMeta(env, tableDescriptor, newRegions);
> // MutableRegionInfo.checkReplicaId
> private static int checkReplicaId(int regionId) {
> if (regionId > MAX_REPLICA_ID) {
> throw new IllegalArgumentException("ReplicaId cannot be greater than" +
> MAX_REPLICA_ID);
> }
> return regionId;
> }{code}
>
>
> So, we can not create the same name table by correct way after faling to
> create table with many region replications (exceed 65536), because the table
> descriptor has been updated into cluster and there is no rollback.
> So i think we can check if the region replication count at stage
> CREATE_TABLE_PRE_OPERATION to avoid this problem
--
This message was sent by Atlassian Jira
(v8.20.10#820010)