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]


Reply via email to