Wellington Chevreuil created HBASE-29174:
--------------------------------------------

             Summary: NPE on MemstoreFlusher when flush is triggered by too 
many wals after a wal rolling
                 Key: HBASE-29174
                 URL: https://issues.apache.org/jira/browse/HBASE-29174
             Project: HBase
          Issue Type: Bug
            Reporter: Wellington Chevreuil
            Assignee: Wellington Chevreuil


When rolling the current wall, if we reach "hbase.regionserver.maxlogs", a 
memstore flush is triggered and we use SequenceIdAccounting.findLower to get 
the region and the stores with the lower sequence id in the wal. The problem is 
if there's a flush entry in the wal, SequenceIdAccounting.findLower is not 
filtering the entries, and we return a METAFAMILY column family, which later on 
HRegion.getSpecificStores we fail to resolve and end up passing a null entry in 
the list of stores to flush:
{noformat}
INFO org.apache.hadoop.hbase.regionserver.HRegion: Flushing 
c380ef2008d408ff79cedc7db5b5181c 1/1 column families, dataSize=80.76 KB 
heapSize=144.57 KB
2025-02-25 22:17:48,973 ERROR 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher: Cache flusher failed for 
entry [flush region PH_EVENT_ALL,\x09OPERATION\x00Pst-BG 
Waf.OL1\x00\x80\x00\x01\x8D~\x11\x0CX\x00\x00\x00\x00FYOPEHS_OPERATION|2024/02/06
 10:57:43|DEL020846.14C|Pst-BG 
Waf.OL1|1|OperationStart|1||DB8G2D10.00,1715914349527.c380ef2008d408ff79cedc7db5b5181c.]
java.lang.NullPointerException
        at 
org.apache.hadoop.hbase.regionserver.HRegion.internalPrepareFlushCache(HRegion.java:2648)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2574)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2548)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:2418)
        at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:602)
        at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:572)
 {noformat}

This issue seems to have been introduced the [following 
change|https://github.com/apache/hbase/pull/1737/files#diff-1dc83cb1bb8ea7075ce53c4247c2bdd7183a92262d671e02660e84be43337e1fR455]
 in HBASE-24382.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to