[
https://issues.apache.org/jira/browse/HBASE-7689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13564418#comment-13564418
]
Jonathan Hsieh commented on HBASE-7689:
---------------------------------------
I agree about the of event handler completion notification in general.
What do you think about making this a single method -- something like
{{complete(Throwable==null)}}? (if throwable is null it is assumed successful
complete). This way someone extending must be aware of the having to handle
the exceptional cases by looking at javadoc, and doesn't have to look at the
code of calls sites of the superclass. We've have a simpler invariant where
that {{complete}} method is called once (current version says either complete
or failed must be called at least once).
> CloneTableHandler notify completion too early
> ---------------------------------------------
>
> Key: HBASE-7689
> URL: https://issues.apache.org/jira/browse/HBASE-7689
> Project: HBase
> Issue Type: Sub-task
> Components: snapshots
> Affects Versions: hbase-6055
> Reporter: Matteo Bertozzi
> Assignee: Matteo Bertozzi
> Fix For: hbase-6055, 0.96.0
>
> Attachments: HBASE-7689-v0.patch
>
>
> With HBASE-7365 the clone table handler notify that the clone is finished
> before the base create table handler has moved the table folder in place and
> added regions to .META.
> If the client call isRestoreDone() before the META+disk update gets an
> exception like this:
> {code}
> org.apache.hadoop.hbase.TableNotFoundException: clonedtb-1359268409309
> at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:991)
> at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:856)
> at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:813)
> at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:234)
> at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:174)
> at
> org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClient.verifyRowCount(TestRestoreSnapshotFromClient.java:387)
> at
> org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClient.testCloneSnapshot(TestRestoreSnapshotFromClient.java:259)
> at
> org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClient.testCloneSnapshot(TestRestoreSnapshotFromClient.java:251)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira