Browse Source

HADOOP-3931. Fix corner case in the map-side sort that causes some values
to be counted as too large and cause pre-mature spills to disk. Some values
will also bypass the combiner incorrectly. (cdouglas via omalley)


git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.17@684919 13f79535-47bb-0310-9956-ffa450edef68

Owen O'Malley 17 years ago
parent
commit
75a844bce4
2 changed files with 5 additions and 1 deletions
  1. 4 0
      CHANGES.txt
  2. 1 1
      src/java/org/apache/hadoop/mapred/MapTask.java

+ 4 - 0
CHANGES.txt

@@ -38,6 +38,10 @@ Release 0.17.2 - Unreleased
     HADOOP-3859. Allow the maximum number of xceivers in the data node to
     HADOOP-3859. Allow the maximum number of xceivers in the data node to
     be configurable. (Johan Oskarsson via omalley)
     be configurable. (Johan Oskarsson via omalley)
 
 
+    HADOOP-3931. Fix corner case in the map-side sort that causes some values 
+    to be counted as too large and cause pre-mature spills to disk. Some values
+    will also bypass the combiner incorrectly. (cdouglas via omalley)
+
 Release 0.17.1 - 2008-06-23
 Release 0.17.1 - 2008-06-23
 
 
   INCOMPATIBLE CHANGES
   INCOMPATIBLE CHANGES

+ 1 - 1
src/java/org/apache/hadoop/mapred/MapTask.java

@@ -435,7 +435,7 @@ class MapTask extends Task {
       try {
       try {
         int keystart = bufindex;
         int keystart = bufindex;
         keySerializer.serialize(key);
         keySerializer.serialize(key);
-        if (bufindex < keystart || bufindex == bufvoid) {
+        if (bufindex < keystart) {
           // wrapped the key; reset required
           // wrapped the key; reset required
           bb.reset();
           bb.reset();
           keystart = 0;
           keystart = 0;