You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jean-Daniel Cryans (JIRA)" <ji...@apache.org> on 2013/07/25 02:43:49 UTC

[jira] [Created] (HBASE-9038) Compaction WALEdit gives NPEs with Replication enabled

Jean-Daniel Cryans created HBASE-9038:
-----------------------------------------

             Summary: Compaction WALEdit gives NPEs with Replication enabled
                 Key: HBASE-9038
                 URL: https://issues.apache.org/jira/browse/HBASE-9038
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.95.1
            Reporter: Jean-Daniel Cryans
            Assignee: Jean-Daniel Cryans
            Priority: Blocker
             Fix For: 0.98.0, 0.95.2


If you enable replication, and get a compaction requested, you'll see this in the logs:

{noformat}
2013-07-24 15:16:38,831 ERROR [regionserver60020-smallCompactions-1374704194254] regionserver.CompactSplitThread: Compaction failed Request = regionName=TestTable,00000000000000000000057204,1374704192994.6bb7c58d1e6cc99fbfe04592e44fbc35., storeName=info, fileCount=4, fileSize=335.1m (115.4m, 115.4m, 69.0m, 35.2m), priority=6, time=1374704194257521000
java.lang.NullPointerException
	at org.apache.hadoop.hbase.replication.regionserver.Replication.visitLogEntryBeforeWrite(Replication.java:215)
	at org.apache.hadoop.hbase.regionserver.wal.FSHLog.doWrite(FSHLog.java:1204)
	at org.apache.hadoop.hbase.regionserver.wal.FSHLog.append(FSHLog.java:890)
	at org.apache.hadoop.hbase.regionserver.wal.FSHLog.append(FSHLog.java:840)
	at org.apache.hadoop.hbase.regionserver.wal.HLogUtil.writeCompactionMarker(HLogUtil.java:262)
	at org.apache.hadoop.hbase.regionserver.HStore.writeCompactionWalRecord(HStore.java:1026)
	at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:973)
	at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:1278)
	at org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.run(CompactSplitThread.java:465)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

{noformat}

It's a simple case of filtering METAFAMILY like this:

bq. if (kv.matchingFamily(WALEdit.METAFAMILY)) continue;

and add a unit test.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira