[
https://issues.apache.org/jira/browse/HBASE-21866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16764313#comment-16764313
]
Xiang Li edited comment on HBASE-21866 at 2/10/19 6:23 AM:
-----------------------------------------------------------
The following code might be the cause:
{code:title=hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java|borderStyle=solid}
@Override
protected void rollbackState(final MasterProcedureEnv env, final
CreateTableState state)
throws IOException {
if (state == CreateTableState.CREATE_TABLE_PRE_OPERATION) {
// nothing to rollback, pre-create is just table-state checks.
// We can fail if the table does exist or the descriptor is malformed.
// TODO: coprocessor rollback semantic is still undefined.
DeleteTableProcedure.deleteTableStates(env, getTableName());
final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();
if (cpHost != null) {
cpHost.postDeleteTable(getTableName());
}
releaseSyncLatch();
return;
}
{code}
The postDeleteTable() calls RSGroupAdminEndpoint#postDeleteTable() to move the
table to null rsgroup.
I have no idea how to fix it yet. We might make it not to call
cpHost.postDeleteTable() for some conditions? [~xucang][[email protected]]
was (Author: water):
The following code might be the cause:
{code:title=hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java|borderStyle=solid}
@Override
protected void rollbackState(final MasterProcedureEnv env, final
CreateTableState state)
throws IOException {
if (state == CreateTableState.CREATE_TABLE_PRE_OPERATION) {
// nothing to rollback, pre-create is just table-state checks.
// We can fail if the table does exist or the descriptor is malformed.
// TODO: coprocessor rollback semantic is still undefined.
DeleteTableProcedure.deleteTableStates(env, getTableName());
final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();
if (cpHost != null) {
cpHost.postDeleteTable(getTableName());
}
releaseSyncLatch();
return;
}
{code}
The postDeleteTable() calls RSGroupAdminEndpoint#postDeleteTable() to move the
table to null rsgroup.
I have no idea how to fix it yet.
> Move the table to null rsgroup when creating a existing table
> -------------------------------------------------------------
>
> Key: HBASE-21866
> URL: https://issues.apache.org/jira/browse/HBASE-21866
> Project: HBase
> Issue Type: Bug
> Components: rsgroup
> Reporter: Xiang Li
> Assignee: Xiang Li
> Priority: Major
>
> By using the latest HBase master branch, the bug could be re-produced as:
> # Create 't1', 'cf1'
> # Create 't1', 'cf1' again
> The following message is logged into HMaster's log:
> {code}
> INFO [PEWorker-12] rsgroup.RSGroupAdminServer: Moving table t1 to RSGroup
> null
> {code}
> This is a wrong action that we should keep t1 as where it originally is.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)