[
https://issues.apache.org/jira/browse/HBASE-12542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14219215#comment-14219215
]
Anoop Sam John commented on HBASE-12542:
----------------------------------------
Suggested change in sequence looks fine.
Or more cleaner
-close regions
-change table descriptors
-remove cf dir
-open regions
(If it is not too much of changes)
> 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, 0.94.25
>
>
> 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)