Toshihiro Suzuki created HBASE-19934:
----------------------------------------

             Summary: HBaseSnapshotException when read replicas is enabled and 
online snapshot is taken after region splitting
                 Key: HBASE-19934
                 URL: https://issues.apache.org/jira/browse/HBASE-19934
             Project: HBase
          Issue Type: Bug
          Components: snapshots
            Reporter: Toshihiro Suzuki


Investigating HBASE-19893, I'm encountering another issue.

Steps to reproduce are as follows:

1. Create a table
{code:java}
create "test", "cf", {REGION_REPLICATION => 2}{code}
2. Load data to the table
{code:java}
(0...2000).each{|i| put "test", "row#{i}", "cf:col", "val"}{code}
3. Split the table
{code:java}
split "test"{code}
4. Take a snapshot for the table
{code:java}
snapshot "test", "snap"{code}
And I encountered the following error:
{code:java}
hbase(main):004:0> snapshot "test", "snap"

ERROR: org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
ss=snap table=test type=FLUSH } had an error. Procedure snap { waiting=[] 
done=[] }
at 
org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:379)
at 
org.apache.hadoop.hbase.master.MasterRpcServices.isSnapshotDone(MasterRpcServices.java:1144)
at 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:406)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
Caused by: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException via 
Failed taking snapshot { ss=snap table=test type=FLUSH } due to 
exception:Manifest region info {ENCODED => b910488a686644a7c1c85246d0d123d5, 
NAME => 'test,,1517808523837_0001.b910488a686644a7c1c85246d0d123d5.', STARTKEY 
=> '', ENDKEY => '', OFFLINE => true, SPLIT => true, REPLICA_ID => 1}doesn't 
match expected region:{ENCODED => ef8665859c0b19927b7dc127ec10120a, NAME => 
'test,,1517808523837.ef8665859c0b19927b7dc127ec10120a.', STARTKEY => '', ENDKEY 
=> '', OFFLINE => true, SPLIT => 
true}:org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Manifest 
region info {ENCODED => b910488a686644a7c1c85246d0d123d5, NAME => 
'test,,1517808523837_0001.b910488a686644a7c1c85246d0d123d5.', STARTKEY => '', 
ENDKEY => '', OFFLINE => true, SPLIT => true, REPLICA_ID => 1}doesn't match 
expected region:{ENCODED => ef8665859c0b19927b7dc127ec10120a, NAME => 
'test,,1517808523837.ef8665859c0b19927b7dc127ec10120a.', STARTKEY => '', ENDKEY 
=> '', OFFLINE => true, SPLIT => true}
at 
org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.rethrowException(ForeignExceptionDispatcher.java:82)
at 
org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler.rethrowExceptionIfFailed(TakeSnapshotHandler.java:306)
at 
org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:368)
... 6 more
Caused by: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: 
Manifest region info {ENCODED => b910488a686644a7c1c85246d0d123d5, NAME => 
'test,,1517808523837_0001.b910488a686644a7c1c85246d0d123d5.', STARTKEY => '', 
ENDKEY => '', OFFLINE => true, SPLIT => true, REPLICA_ID => 1}doesn't match 
expected region:{ENCODED => ef8665859c0b19927b7dc127ec10120a, NAME => 
'test,,1517808523837.ef8665859c0b19927b7dc127ec10120a.', STARTKEY => '', ENDKEY 
=> '', OFFLINE => true, SPLIT => true}
at 
org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier.verifyRegionInfo(MasterSnapshotVerifier.java:223)
at 
org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier.verifyRegions(MasterSnapshotVerifier.java:201)
at 
org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier.verifySnapshot(MasterSnapshotVerifier.java:119)
at 
org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler.process(TakeSnapshotHandler.java:202)
at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Take a snapshot of specified table. Examples:

hbase> snapshot 'sourceTable', 'snapshotName'
hbase> snapshot 'namespace:sourceTable', 'snapshotName', {SKIP_FLUSH => true}

Took 0.3390 seconds{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to