Sergey Shelukhin created HBASE-8935:
---------------------------------------

             Summary: IntegrationTestBigLinkedList fails under load on 0.94 due 
to some scan issues
                 Key: HBASE-8935
                 URL: https://issues.apache.org/jira/browse/HBASE-8935
             Project: HBase
          Issue Type: Bug
            Reporter: Sergey Shelukhin
            Assignee: Sergey Shelukhin


We observe occasional failures (4-5k undefined and unreferenced nodes in the 
list, running) when the cluster is stressed while running 
IntegrationTestBigLinkedList on 0.94. Unfortunately debug logging is disabled.
If Verify is rerun after the fact, the data is there, so it's not data loss. 
All the missing keys come from very narrow range from the very beginning of  
one region; most of this region is not affected.
In the case I'm looking at, region range is
{code}\xD0\x0C`=%\xA2\xD3\xA8\x0A\xF8\x917\x05\x94\x1D> .. 
\xD4\x0Bx\xAF\x88\x0C\xF4"7\x9A\x9F{\xCE\x0E\x8A{code}
and problematic renage
{code}\xD0\x0C`QLD\xED2\xD5c\x8D\xDB5\x01\xD2H] ... 
\xD0\x0D\x89)\x11\x0E8\xC5\x08o\xD7\xE3$\xB3\xAAu{code}
There are no splits and compactions on the region during MR job; there are no 
compactions after that could have affected the data, although there is one 
flush that happened long after, and region was moved and reopened (before I ran 
verify manually that showed that data is in HBase).
One thing that happened was that the scanners used by all the map tasks had 
lease expirations during the MR job that had missing data, some of them twice.
First scanner expiration for each task I looked at was exactly 1 minute after 
"Processing split" log message, when the scanner is opened.
Only the tasks where the scanners have expired twice (2 of them) logged any 
errors; presumably one expiration in each task happened after the reading was 
finished, because everything was slow and scanner wasn't closed in time - no 
errors or exceptions are logged in the tasks where scanner only expired once.
The job I ran afterwards had no scanner expirations so it does close them 
correctly in normal case...
The task that was reading the problematic range had one scanner expiration and 
didn't log any errors.
It's a little bit special (or it may be a total red herring) in that in other 
tasks, scanner expired while the task was splitting partial outputs (which may 
mean end of input reading?), whereas in the task that lost data spilling 
started long (~40s) after the scanner expired.
However there's one another such task (spilling started 25s after scanner 
expired) and it didn't log any errors and didn't lose data.
At this point I am not sure about the root cause but I suspect it might be 
related to scanner expiration handling, given the patterns.
One thing for sure is that there isn't enough logging... so I will start with 
adding that.

 

--
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

Reply via email to