Browse Source

HDFS-7399. Lack of synchronization in DFSOutputStream#Packet#getLastByteOffsetBlock() (Contributed by Vinayakumar B)

Vinayakumar B 10 years ago
parent
commit
6783d17fcf

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -433,6 +433,9 @@ Release 2.7.0 - UNRELEASED
     HDFS-7395. BlockIdManager#clear() bails out when resetting the
     HDFS-7395. BlockIdManager#clear() bails out when resetting the
     GenerationStampV1Limit. (wheat9)
     GenerationStampV1Limit. (wheat9)
 
 
+    HDFS-7399. Lack of synchronization in
+    DFSOutputStream#Packet#getLastByteOffsetBlock() (vinayakumarb)
+
 Release 2.6.0 - 2014-11-18
 Release 2.6.0 - 2014-11-18
 
 
   INCOMPATIBLE CHANGES
   INCOMPATIBLE CHANGES

+ 3 - 3
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java

@@ -342,12 +342,12 @@ public class DFSOutputStream extends FSOutputSummer
       bam.release(buf);
       bam.release(buf);
       buf = null;
       buf = null;
     }
     }
-    
+
     // get the packet's last byte's offset in the block
     // get the packet's last byte's offset in the block
-    long getLastByteOffsetBlock() {
+    synchronized long getLastByteOffsetBlock() {
       return offsetInBlock + dataPos - dataStart;
       return offsetInBlock + dataPos - dataStart;
     }
     }
-    
+
     /**
     /**
      * Check if this packet is a heart beat packet
      * Check if this packet is a heart beat packet
      * @return true if the sequence number is HEART_BEAT_SEQNO
      * @return true if the sequence number is HEART_BEAT_SEQNO