You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-dev@hadoop.apache.org by "Billie Rinaldi (Jira)" <ji...@apache.org> on 2020/03/09 19:49:00 UTC

[jira] [Created] (MAPREDUCE-7265) Buffer corruption with spill percent 1.0

Billie Rinaldi created MAPREDUCE-7265:
-----------------------------------------

             Summary: Buffer corruption with spill percent 1.0
                 Key: MAPREDUCE-7265
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-7265
             Project: Hadoop Map/Reduce
          Issue Type: Bug
            Reporter: Billie Rinaldi
            Assignee: Billie Rinaldi


I encountered a variety of issues on a cluster where the spill percent was set to 1.0. Under some conditions, MapTask will not detect that its in memory spill buffer is already full and will keep collecting k/v pairs, causing corruption of the buffer.

I have been able to track at least some of the problems to a condition where adding a key/value pair to the buffer fills the buffer with fewer than 16 bytes remaining (the kv metadata size). When this happens, the next metadata index (kvindex) passes over the data index (bufindex), which causes some of the index and length calculations to be incorrect in the collect and write methods. It can allow data to keep being written to the buffer even though it is already full, with data overwriting metadata in the buffer and vice versa. I have seen this manifest as the NegativeArraySizeException seen in MAPREDUCE-6907 as well as in ArrayIndexOutOfBoundsException and EOFException.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: mapreduce-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: mapreduce-dev-help@hadoop.apache.org