[
https://issues.apache.org/jira/browse/HBASE-17319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15755518#comment-15755518
]
Ted Yu commented on HBASE-17319:
--------------------------------
In test output for the new test, I found several exceptions in the following
form:
{code}
2016-12-16 20:56:15,107 DEBUG [ProcedureExecutorWorker-1]
procedure2.ProcedureExecutor(1096): rollback attempt failed for
SplitTableRegionProcedure
(table=testTruncateWithPreserveAfterSplit parent region={ENCODED =>
e2a94ed0e554a3d2d4d7c8a283a1f9fd, NAME =>
'testTruncateWithPreserveAfterSplit,c,1481921769384.
e2a94ed0e554a3d2d4d7c8a283a1f9fd.', STARTKEY => 'c', ENDKEY => ''} first
daughter region={ENCODED => 803eb0625a1ee6329963c253ce44a2f3, NAME =>
'testTruncateWithPreserveAfterSplit,c,1481921774661.803eb0625a1ee6329963c253ce44a2f3.',
STARTKEY => 'c', ENDKEY => 'f13:'} and second daughter region={ENCODED =>
60388dba3c28658ac2c3e8a54cb73a7c, NAME =>
'testTruncateWithPreserveAfterSplit,f13:,1481921774661.60388dba3c28658ac2c3e8a54cb73a7c.',
STARTKEY => 'f13:', ENDKEY => ''}) id=7 owner=hbase.hfs.0
state=FINISHED:SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE
failed=java.io.IOException via master-split-region:java.io.IOException: Failed
to update region state to SPLITTING for
testTruncateWithPreserveAfterSplit,c,1481921769384.e2a94ed0e554a3d2d4d7c8a283a1f9fd.
java.io.IOException: Failed to update region state for
testTruncateWithPreserveAfterSplit,c,1481921769384.e2a94ed0e554a3d2d4d7c8a283a1f9fd.
as part of operation for reverting split
at
org.apache.hadoop.hbase.master.procedure.SplitTableRegionProcedure.setRegionStateToRevertSplitting(SplitTableRegionProcedure.java:455)
at
org.apache.hadoop.hbase.master.procedure.SplitTableRegionProcedure.rollbackState(SplitTableRegionProcedure.java:249)
at
org.apache.hadoop.hbase.master.procedure.SplitTableRegionProcedure.rollbackState(SplitTableRegionProcedure.java:73)
at
org.apache.hadoop.hbase.procedure2.StateMachineProcedure.rollback(StateMachineProcedure.java:175)
at org.apache.hadoop.hbase.procedure2.Procedure.doRollback(Procedure.java:730)
at
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeRollback(ProcedureExecutor.java:1093)
at
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeRollback(ProcedureExecutor.java:1049)
at
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:952)
at
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$700(ProcedureExecutor.java:73)
{code}
> Truncate table with preserve after split may cause truncation to fail
> ---------------------------------------------------------------------
>
> Key: HBASE-17319
> URL: https://issues.apache.org/jira/browse/HBASE-17319
> Project: HBase
> Issue Type: Bug
> Components: Admin
> Affects Versions: 1.1.7, 1.2.4
> Reporter: Allan Yang
> Assignee: Allan Yang
> Fix For: 1.4.0
>
> Attachments: HBASE-17319-branch-1.patch, HBASE-17319.patch
>
>
> In truncateTableProcedue , when getting tables regions from meta to recreate
> new regions, split parents are not excluded, so the new regions can end up
> with the same start key, and the same region dir:
> {noformat}
> 2016-12-14 20:15:22,231 WARN [RegionOpenAndInitThread-writetest-1]
> regionserver.HRegionFileSystem: Trying to create a region that already exists
> on disk:
> hdfs://hbasedev1/zhengyan-hbase11-func2/.tmp/data/default/writetest/9b2c8d1539cd92661703ceb8a4d518a1
> {noformat}
> The truncateTableProcedue will retry forever and never get success.
> A attached unit test shows everything.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)