HBase logging TableInfoMissingException for recovered.edits directory

Bug #1290610 reported by Oliver Bucaojit
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Trafodion
Fix Released
Medium
Oliver Bucaojit

Bug Description

2014-03-07 17:32:33,800 DEBUG org.apache.hadoop.hbase.util.FSTableDescriptors: Exception during readTableDecriptor. Current table name = recovered.edits
org.apache.hadoop.hbase.TableInfoMissingException: No .tableinfo file under file:/tmp/hbase-hbase/hbase/recovered.edits
        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorModtime(FSTableDescriptors.java:417)
        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorModtime(FSTableDescriptors.java:409)
        at org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:164)
        at org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:195)
        at org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1902)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:320)
        at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1428)
2014-03-07 17:32:33,802 WARN org.apache.hadoop.hbase.util.FSTableDescriptors: The following folder is in HBase's root directory and doesn't contain a table descriptor, do consider deleting it: recovered.edits

-----

Manually deleting the recover.edits will solve the Exception being printed.

In hbase-trx, it is necessary to find the significance of the recovered.edits directory and what can be done to make it compatible with the current version of HBase.

Initial thoughts would be to rename it to '.recovered.edits' or to delete the directory if it is no longer used

Tags: dtm
Revision history for this message
Oliver Bucaojit (oliver-bucaojit) wrote :

I have a fix for this, the code change will check the new name for an old log directory vs the recovered_edits. Will check into seatrans_2 when branch is stabilized:

+import org.apache.hadoop.hbase.HConstants;
...

- Path oldLogDir = new Path(getRootDir(), HLogSplitter.RECOVERED_EDITS);
+ // Directory used in newer version
+ // Path oldLogDir = new Path(getRootDir(), HLogSplitter.RECOVERED_EDITS);
+ Path oldLogDir = new Path(getRootDir(), HConstants.HREGION_OLDLOGDIR_NAME);

Changed in trafodion:
status: In Progress → Confirmed
tags: added: transaction
tags: added: dtm
removed: transaction
Revision history for this message
Oliver Bucaojit (oliver-bucaojit) wrote :

Changed directory name to /hbase/.oldlogs vs /hbase/recovered.edits

Changed in trafodion:
status: Confirmed → Fix Committed
information type: Proprietary → Public
Alice Chen (alchen)
Changed in trafodion:
milestone: none → r0.8
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.