[
https://issues.apache.org/jira/browse/HBASE-16103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matteo Bertozzi updated HBASE-16103:
------------------------------------
Summary: Procedure v2 - TestCloneSnapshotProcedure relies on execution
order (was: Procedure v2 - TestCloneSnaphotProcedure relies on execution order)
> Procedure v2 - TestCloneSnapshotProcedure relies on execution order
> -------------------------------------------------------------------
>
> Key: HBASE-16103
> URL: https://issues.apache.org/jira/browse/HBASE-16103
> Project: HBase
> Issue Type: Bug
> Components: proc-v2, test
> Affects Versions: 2.0.0
> Reporter: Matteo Bertozzi
> Assignee: Matteo Bertozzi
> Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16103-v0.patch
>
>
> https://builds.apache.org/view/All/job/HBase-Trunk_matrix/jdk=latest1.8,label=yahoo-not-h2/1100/
>
> the TestCloneSnapshotProcedure is written in a way that relies on the
> execution order and does not tolerate failure of a previous test.
> getSnapshot() has a cached snapshot. if we haven't created yet we will create
> it.
> (from how the code is written is a bit unclear that where we are taking the
> snapshot, so in the patch I moved out the call to make it more readable)
> In this case we started with testCloneSnapshotToSameTable and it failed
> because the table was waiting for flushes and compaction and it took a long
> time.
> {noformat}
> org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.waitForTableToBeOnline(SnapshotTestingUtils.java:737)
> at
> org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.loadData(SnapshotTestingUtils.java:799)
> at
> org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.loadData(SnapshotTestingUtils.java:770)
> at
> org.apache.hadoop.hbase.master.procedure.TestCloneSnapshotProcedure.getSnapshot(TestCloneSnapshotProcedure.java:114)
> at
> org.apache.hadoop.hbase.master.procedure.TestCloneSnapshotProcedure.testCloneSnapshotToSameTable(TestCloneSnapshotProcedure.java:176)
> {noformat}
> when we got to testRollbackAndDoubleExecution which stop and start the
> executor to simulate crashes the snapshot. we ask the executor to stop and
> then we asked to take a snapshot, but of course the executor is not running
> so we are stuck there.
> Similarly if we run TestCloneSnapshotProcedure#testRollbackAndDoubleExecution
> alone, this will always fail because of the above. the snapshot cannot be
> taken because we stopped the executor. the test here was written relying on
> the execution order. easy fix is to take the snapshot before stopping the
> executor for the clone failure simulation as it is supposed to be.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)