Feng Honghua created HBASE-10595:
------------------------------------
Summary: 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
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)