[jira] [Comment Edited] (HBASE-18068) Fix flaky test TestAsyncSnapshotAdminApi

2017-05-19 Thread Appy (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16018198#comment-16018198
 ] 

Appy edited comment on HBASE-18068 at 5/20/17 12:20 AM:


[~openinx]] uploaded patch. Real bug fix is just 10 lines, rest is landscaping. 
[ReviewBoard|https://reviews.apache.org/r/59425/]


was (Author: appy):
[~zheng hu] uploaded patch. Real bug fix is just 10 lines, rest is landscaping. 
[ReviewBoard|https://reviews.apache.org/r/59425/]

> Fix flaky test TestAsyncSnapshotAdminApi
> 
>
> Key: HBASE-18068
> URL: https://issues.apache.org/jira/browse/HBASE-18068
> Project: HBase
>  Issue Type: Sub-task
>  Components: Client
>Reporter: Appy
>Assignee: Appy
> Fix For: 2.0.0
>
> Attachments: HBASE-18068.master.001.patch
>
>
> Test failures
> {noformat}
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testRestoreSnapshot
> 
> org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: 
> org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: Restore already in 
> progress on the table=testRestoreSnapshot
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:854)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:818)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreOrCloneSnapshot(SnapshotManager.java:780)
>  at org.apache.hadoop.hbase.master.HMaster$14.run(HMaster.java:2324)
>  at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:133)
>  at org.apache.hadoop.hbase.master.HMaster.restoreSnapshot(HMaster.java:2320)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.restoreSnapshot(MasterRpcServices.java:1224)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:257)
> 
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testDeleteSnapshots
> 
> org.apache.hadoop.hbase.snapshot.SnapshotCreationException: 
> org.apache.hadoop.hbase.snapshot.SnapshotCreationException: Rejected taking { 
> ss=snapshotName1 table=testDeleteSnapshots type=FLUSH } because we are 
> already running another snapshot on the same table { ss=snapshotName1 
> table=testDeleteSnapshots type=FLUSH }
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.prepareToTakeSnapshot(SnapshotManager.java:440)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.snapshotEnabledTable(SnapshotManager.java:497)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.takeSnapshot(SnapshotManager.java:598)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.snapshot(MasterRpcServices.java:1299)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:257)
> 
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testListSnapshots
> 
> org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException: Snapshot 
> 'snapshotName2' doesn't exist on the filesystem
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.deleteSnapshot(SnapshotManager.java:289)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.deleteSnapshot(MasterRpcServices.java:461)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:257)
> 

[jira] [Comment Edited] (HBASE-18068) Fix flaky test TestAsyncSnapshotAdminApi

2017-05-17 Thread Zheng Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16015060#comment-16015060
 ] 

Zheng Hu edited comment on HBASE-18068 at 5/18/17 1:48 AM:
---

[~appy],  TestAsyncSnapshotAdminApi is written by me, and after checking the 
code, I found the problem:   a snapshot restore may be still in progress even 
though async admin.restoreSnapshot(..).get(),  because it just submit a 
procedure and get the procedure Id returned (ut can pass in local desktop  
because restore is so quick).   


was (Author: openinx):
[~appy],  TestAsyncSnapshotAdminApi is written by me, and after checking the 
code, I found the problem:   a snapshot restore may be still in progress even 
though async admin.restoreSnapshot(..).get(),  because it just submit a 
procedure and get the procedure Id returned (ut can pass in local desktop  
because restore is so quick).  So , let me fix the bug. 

> Fix flaky test TestAsyncSnapshotAdminApi
> 
>
> Key: HBASE-18068
> URL: https://issues.apache.org/jira/browse/HBASE-18068
> Project: HBase
>  Issue Type: Sub-task
>  Components: Client
>Reporter: Appy
>Assignee: Appy
> Fix For: 2.0.0
>
>
> Test failures
> {noformat}
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testRestoreSnapshot
> 
> org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: 
> org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: Restore already in 
> progress on the table=testRestoreSnapshot
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:854)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:818)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreOrCloneSnapshot(SnapshotManager.java:780)
>  at org.apache.hadoop.hbase.master.HMaster$14.run(HMaster.java:2324)
>  at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:133)
>  at org.apache.hadoop.hbase.master.HMaster.restoreSnapshot(HMaster.java:2320)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.restoreSnapshot(MasterRpcServices.java:1224)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:257)
> 
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testDeleteSnapshots
> 
> org.apache.hadoop.hbase.snapshot.SnapshotCreationException: 
> org.apache.hadoop.hbase.snapshot.SnapshotCreationException: Rejected taking { 
> ss=snapshotName1 table=testDeleteSnapshots type=FLUSH } because we are 
> already running another snapshot on the same table { ss=snapshotName1 
> table=testDeleteSnapshots type=FLUSH }
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.prepareToTakeSnapshot(SnapshotManager.java:440)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.snapshotEnabledTable(SnapshotManager.java:497)
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.takeSnapshot(SnapshotManager.java:598)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.snapshot(MasterRpcServices.java:1299)
>  at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
>  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:257)
> 
> org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.testListSnapshots
> 
> org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException: Snapshot 
> 'snapshotName2' doesn't exist on the filesystem
>  at 
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.deleteSnapshot(SnapshotManager.java:289)
>  at 
> org.apache.hadoop.hbase.master.MasterRpcServices.deleteSnapshot(MasterRpcServices.java:461)
>  at 
>