hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Himanshu Vashishtha (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10595) HBaseAdmin.getTableDescriptor can wrongly get the previous table's TableDescriptor even after the table dir in hdfs is removed
Date Fri, 28 Feb 2014 18:22:19 GMT

    [ https://issues.apache.org/jira/browse/HBASE-10595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13916130#comment-13916130
] 

Himanshu Vashishtha commented on HBASE-10595:
---------------------------------------------

Looking at the patch, 
bq. +    if (!fs.exists(getTableDir(tablename))) {
This is a call to NN, and this patch would invoke it for every get request.
If a user deletes a table dir, wouldn't there be other (and more severe) consistencies such
as meta being hosed, etc. What is the use case where a user is deleting the table dir behind
the curtain ? 

> 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: Sub-task
>          Components: master, util
>            Reporter: Feng Honghua
>            Assignee: Feng Honghua
>         Attachments: HBASE-10595-trunk_v1.patch, HBASE-10595-trunk_v2.patch, HBASE-10595-trunk_v3.patch,
HBASE-10595-trunk_v4.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)

Mime
View raw message