diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 6791d88c2bf..0c1640d0320 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -973,6 +973,9 @@ Release 2.7.0 - UNRELEASED HDFS-7977. NFS couldn't take percentile intervals (brandonli) + HDFS-7963. Fix expected tracing spans in TestTracing along with HDFS-7054. + (Masatake Iwasaki via kihwal) + BREAKDOWN OF HDFS-7584 SUBTASKS AND RELATED JIRAS HDFS-7720. Quota by Storage Type API, tools and ClientNameNode diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java index 0bbd5b4c522..3720abe6603 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java @@ -88,7 +88,10 @@ public class TestTracing { "ClientNamenodeProtocol#fsync", "org.apache.hadoop.hdfs.protocol.ClientProtocol.complete", "ClientNamenodeProtocol#complete", - "DFSOutputStream", + "newStreamForCreate", + "DFSOutputStream#writeChunk", + "DFSOutputStream#close", + "dataStreamer", "OpWriteBlockProto", "org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock", "ClientNamenodeProtocol#addBlock" @@ -102,10 +105,25 @@ public class TestTracing { long spanStart = s.getStartTimeMillis(); long spanEnd = s.getStopTimeMillis(); - // There should only be one trace id as it should all be homed in the - // top trace. - for (Span span : SetSpanReceiver.SetHolder.spans.values()) { - Assert.assertEquals(ts.getSpan().getTraceId(), span.getTraceId()); + // Spans homed in the top trace shoud have same trace id. + // Spans having multiple parents (e.g. "dataStreamer" added by HDFS-7054) + // and children of them are exception. + String[] spansInTopTrace = { + "testWriteTraceHooks", + "org.apache.hadoop.hdfs.protocol.ClientProtocol.create", + "ClientNamenodeProtocol#create", + "org.apache.hadoop.hdfs.protocol.ClientProtocol.fsync", + "ClientNamenodeProtocol#fsync", + "org.apache.hadoop.hdfs.protocol.ClientProtocol.complete", + "ClientNamenodeProtocol#complete", + "newStreamForCreate", + "DFSOutputStream#writeChunk", + "DFSOutputStream#close", + }; + for (String desc : spansInTopTrace) { + for (Span span : map.get(desc)) { + Assert.assertEquals(ts.getSpan().getTraceId(), span.getTraceId()); + } } }