You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Liu Shaohui (JIRA)" <ji...@apache.org> on 2014/11/20 05:32:34 UTC

[jira] [Created] (HBASE-12542) Delete a family of table online will crash regionserver

Liu Shaohui created HBASE-12542:
-----------------------------------

             Summary: 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)