anoopsjohn commented on pull request #1721: URL: https://github.com/apache/hbase/pull/1721#issuecomment-629195942
@binlijin , @wchevreuil - I think I got exactly when we will see this issue. Method reclaimMemStoreMemory() Will be called from RSRpcServices every time during a write op (mutate, multi etc). This will check for the memory global barrier and do actions. You can see in this method the flushType will be set and then we add a WAKEUPFLUSH_INSTANCE entry so that the FlushHandler threads get this entry. This will again do watermark check and call flushOneForGlobalPressure but by then the flushType is been set already. But there is another possible thread flow which can also check this barrier. When the FlushHandler wake up time reached and so it poll and see 'fqe' as null, still it check the barrier. Ya by then already the barrier might have reached. (But the other thread did not call reclaimMemStoreMemory and set the state). This time the call to flushOneForGlobalPressure will result in NPE. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
