[ https://issues.apache.org/jira/browse/HADOOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack updated HADOOP-1581: -------------------------- Attachment: hadoop-1581.patch Suggested fix for this issue. HADOOP-1581 HBASE: Un-openable tablename bug Change format of region names from TABLENAME_STARTROW_ENDROW-RANDOMID to TABLENAME,STARTROW,ENDROW-RANDOMID. Makes it so lone table name will sort before any region of said table. M src/contrib/hbase/src/test/hbase-site.xml (hbase.client.retries.number): Removed. Wasdefault value for this property. (hbase.master.meta.thread.rescanfrequency, hbase.server.thread.wakefrequency, hbase.regionserver.handler.count): Add values that are less than default so unit tests are even more responsive (and finished quicker). M src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestToString.java Change test so it expects region info name that has ',' delimiters rather than '_' delimiters. * src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestTable.java Rename testTable as testCreateTable. (testTableNameClash): Test for this issue. * src/contrib/hbase/src/java/org/apache/hadoop/hbase/HTableDescriptor.java Comment on table name sorting. * src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionInfo.java Change format of region names so delimiter is ',' rather than '_'. > 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.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.