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)

Reply via email to