[ https://issues.apache.org/jira/browse/HBASE-10595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13909716#comment-13909716 ]
Feng Honghua commented on HBASE-10595: -------------------------------------- TestMasterObserver fails when I run 'mvn test -P runAllTests', but it never fails when I run it separately many times(10+), any clue? > HBaseAdmin.getTableDescriptor can wrongly get the previous table's > TableDescriptor even after the table dir in hdfs is removed > ------------------------------------------------------------------------------------------------------------------------------ > > Key: HBASE-10595 > URL: https://issues.apache.org/jira/browse/HBASE-10595 > Project: HBase > Issue Type: Bug > Components: master, util > Reporter: Feng Honghua > Assignee: Feng Honghua > Attachments: HBASE-10595-trunk_v1.patch > > > When a table dir (in hdfs) is removed(by outside), HMaster will still return > the cached TableDescriptor to client for getTableDescriptor request. > On the contrary, HBaseAdmin.listTables() is handled correctly in current > implementation, for a table whose table dir in hdfs is removed by outside, > getTableDescriptor can still retrieve back a valid (old) table descriptor, > while listTables says it doesn't exist, this is inconsistent > The reason for this bug is because HMaster (via FSTableDescriptors) doesn't > check if the table dir exists for getTableDescriptor() request, (while it > lists all existing table dirs(not firstly respects cache) and returns > accordingly for listTables() request) > When a table is deleted via deleteTable, the cache will be cleared after the > table dir and tableInfo file is removed, listTables/getTableDescriptor > inconsistency should be transient(though still exists, when table dir is > removed while cache is not cleared) and harder to expose -- This message was sent by Atlassian JIRA (v6.1.5#6160)