[
https://issues.apache.org/jira/browse/HBASE-12542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14256324#comment-14256324
]
stack commented on HBASE-12542:
-------------------------------
[~ted_yu] What [[email protected]] said
[~liushaohui] This looks like a pretty important bug fix:
- if (sync) result = waitUntilDone(getTimeoutOnRIT());
+ if (sync) {
+ long startTime = System.currentTimeMillis();
+ long timeout = getTimeoutOnRIT();
+ pool.awaitTermination(timeout, TimeUnit.MICROSECONDS);
+ timeout = timeout - (System.currentTimeMillis() - startTime);
+ result = waitUntilDone(timeout);
+ }
Otherwise patch looks good caveat the MICROSECONDS Ted notes above. I can fix
the two issues raised on commit if you can confirm you meant millis.
> Delete a family of table online will crash regionserver
> --------------------------------------------------------
>
> Key: HBASE-12542
> URL: https://issues.apache.org/jira/browse/HBASE-12542
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: Liu Shaohui
> Assignee: Liu Shaohui
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: HBASE-12542-v1.diff
>
>
> Using alter command to delete a family of table online will make the
> regionsevers that serve the regions of the table crash.
> {code}
> alter 't', NAME => 'f', METHOD => 'delete'
> {code}
> The reason is that TableDeleteFamilyHandler in HMaster delete the family dir
> firstly and then reopen all the regions of table.
> When the regionserver reopen the region, it will crash for the exception in
> flushing memstore to hfile of the deleted family during closing the region,
> because the parent dir of the hfile has been deleted in
> TableDeleteFamilyHandler.
> See: TableDeleteFamilyHandler.java #57
> A simple solution is change the order of operations in
> TableDeleteFamilyHandler.
> - update table descriptor first,
> - reopen all the regions,
> - delete the the family dir at last.
> Suggestions are welcomed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)