[ https://issues.apache.org/jira/browse/HADOOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack updated HADOOP-1581: -------------------------- Status: Patch Available (was: Open) Builds and passes all tests locally. Trying on hudson. > HBASE: Un-openable tablename bug > -------------------------------- > > Key: HADOOP-1581 > URL: https://issues.apache.org/jira/browse/HADOOP-1581 > Project: Hadoop > Issue Type: Bug > Components: contrib/hbase > Affects Versions: 0.14.0 > Reporter: James Kennedy > Priority: Critical > Attachments: hadoop-1581-2.patch, hadoop-1581-v3.patch, > hadoop-1581.patch > > > If you create a table whose name is the beginning of an already existing > table name, you will not be able to open the table. > Try: > 1) Create table TESTOne > 2) Create table TEST > 3) Open table TEST > The reason is that the the META keys augment the table name with _[regionID]. > So when looking up table TEST, a scanner is opened on the HMemCache Meta > region with a start key of "TEST". But the HMemcacheScanner backingMaps > (TreeMaps) are keyed with the augmented table names where TESTOne_[regionid1] > comes before TEST_[regionid2] because 'O' is lower than _ in the ASCII table. > The backingMaps[i].tailMap(firstKey).keySet().iterator() line in HMemCache > returns an iterator starting from TestOne_... and not Test_... like it > should. > The "if(!regionInfo.tableDesc.getName().equals(tableName)) {" line in > HClient will cause the method to stop searching for more regions of that > table and the number of found tables for tableName will be 0. Incidentally > that IF statement will report "table found" even when that is not the case. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.