[ https://issues.apache.org/jira/browse/HBASE-5415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13215252#comment-13215252 ]
Jean-Daniel Cryans commented on HBASE-5415: ------------------------------------------- bq. I still don't understand how we can tell the different between a misc directory in wrong place and a table directory missing its .tableinfo. Both would look the same to the interrogating code I'd think? I agree, so we used to send TEE and as you can see in the patch it never did anything special with it. Now we keep this behavior of printing something (a WARN) and then return null, which the rest of the code handles already. bq. I mean, if I had client code that had a catch of a TEE, it'd stop working, right? (I'd doubt such a thing exists so I'm not too bad on removing this) No, since you still have to catch the IOE somehow. Also it's not part of a public interface, only HMaster and HRegionServer use TableDescriptors > FSTableDescriptors should handle random folders in hbase.root.dir better > ------------------------------------------------------------------------ > > Key: HBASE-5415 > URL: https://issues.apache.org/jira/browse/HBASE-5415 > Project: HBase > Issue Type: Bug > Affects Versions: 0.92.0 > Reporter: Jean-Daniel Cryans > Priority: Critical > Fix For: 0.92.1, 0.94.0 > > Attachments: HBASE-5415.patch > > > I faked an upgrade on a test cluster using our dev data so I had to distcp > the data between the two clusters, but after starting up and doing the > migration and whatnot the web UI didn't show any table. The reason was in the > master's log: > {quote} > org.apache.hadoop.hbase.TableExistsException: No descriptor for > _distcp_logs_e0ehek > at > org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:164) > at > org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:182) > at > org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1554) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1326) > {quote} > I don't think we need to show a full stack (just a WARN maybe), this > shouldn't kill the request (still see tables in the web UI), and why is that > a TableExistsException? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira