accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Marion (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ACCUMULO-4483) NegativeArraySizeException from scan thread right after minor compaction
Date Mon, 03 Oct 2016 20:48:20 GMT
Dave Marion created ACCUMULO-4483:
-------------------------------------

             Summary: NegativeArraySizeException from scan thread right after minor compaction
                 Key: ACCUMULO-4483
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4483
             Project: Accumulo
          Issue Type: Bug
          Components: tserver
    Affects Versions: 1.8.0
         Environment: Accumulo 1.8.0
Java 1.8.0_72
            Reporter: Dave Marion
            Priority: Critical


I have been getting NegativeArraySizeExceptions after upgrading to Accumulo 1.8.0. I have
tracked it down to 2 or more concurrent scans on a tablet that has just undergone minor compaction.
The minor compaction thread writes the in-memory map to a local temporary rfile and tries
to switch the current iterators to use it instead of the native map. The iterator code in
the scan thread may also switch itself to use the local temporary rfile it if notices it before
the minor compaction threads performs the switch. This all works up to this point. Shortly
after the switch one of the iterator threads will get a NegativeArraySizeException from:
SourceSwitchingIterator.seek() -> SourceSwitchingIterator.readNext() -> MemKeyConversionIterator.seek()
-> MemKeyConversionIterator.getTopKeyValue() ->MemValue.decode(). I added a bunch of
logging to find that the length of the byte array passed to MemValue.decode is zero.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message