diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 864865fb40c..552443cee98 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -617,6 +617,9 @@ Release 2.8.0 - UNRELEASED HADOOP-11772. RPC Invoker relies on static ClientCache which has synchronized(this) blocks. (wheat9) + HADOOP-11242. Record the time of calling in tracing span of + IPC server. (Masatake Iwasaki via aajisaka) + BUG FIXES HADOOP-11802: DomainSocketWatcher thread terminates sometimes after there is an I/O error during requestShortCircuitShm (cmccabe) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java index ac32ac991b9..98fffc020eb 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java @@ -2153,6 +2153,7 @@ public abstract class Server { CurCall.set(call); if (call.traceSpan != null) { traceScope = Trace.continueSpan(call.traceSpan); + traceScope.getSpan().addTimelineAnnotation("called"); } try { 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 59d12386d63..7fb8ac5cbaa 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 @@ -120,6 +120,13 @@ public class TestTracing { Assert.assertEquals(ts.getSpan().getTraceId(), span.getTraceId()); } } + + // test for timeline annotation added by HADOOP-11242 + Assert.assertEquals("called", + map.get("org.apache.hadoop.hdfs.protocol.ClientProtocol.create") + .get(0).getTimelineAnnotations() + .get(0).getMessage()); + SetSpanReceiver.SetHolder.spans.clear(); }