Repository: incubator-htrace
Updated Branches:
  refs/heads/master 5c0a712c7 -> 9877e8127


HTRACE-132. Trace#startSpan(String, TraceInfo) must not create spans with 
spanId == 0 (cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/9877e812
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/9877e812
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/9877e812

Branch: refs/heads/master
Commit: 9877e8127d1aba9aa64479d4995b63d999fa7d61
Parents: 5c0a712
Author: Colin P. Mccabe <[email protected]>
Authored: Fri Mar 6 12:27:52 2015 -0800
Committer: Colin P. Mccabe <[email protected]>
Committed: Fri Mar 6 12:27:52 2015 -0800

----------------------------------------------------------------------
 htrace-core/src/main/java/org/apache/htrace/Trace.java    |  1 +
 htrace-core/src/main/java/org/apache/htrace/Tracer.java   |  6 +++---
 .../src/main/java/org/apache/htrace/impl/MilliSpan.java   |  4 ++--
 .../src/test/java/org/apache/htrace/TestHTrace.java       | 10 ++++++++++
 4 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/9877e812/htrace-core/src/main/java/org/apache/htrace/Trace.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/Trace.java 
b/htrace-core/src/main/java/org/apache/htrace/Trace.java
index 08e215a..c7147ae 100644
--- a/htrace-core/src/main/java/org/apache/htrace/Trace.java
+++ b/htrace-core/src/main/java/org/apache/htrace/Trace.java
@@ -82,6 +82,7 @@ public class Trace {
         end(0).
         description(description).
         traceId(tinfo.traceId).
+        spanId(Tracer.nonZeroRandom64()).
         parents(new long[] { tinfo.spanId }).
         processId(Tracer.getProcessId()).
         build();

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/9877e812/htrace-core/src/main/java/org/apache/htrace/Tracer.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/Tracer.java 
b/htrace-core/src/main/java/org/apache/htrace/Tracer.java
index ddfd25c..af2d20e 100644
--- a/htrace-core/src/main/java/org/apache/htrace/Tracer.java
+++ b/htrace-core/src/main/java/org/apache/htrace/Tracer.java
@@ -32,7 +32,7 @@ public class Tracer {
   public static final Log LOG = LogFactory.getLog(Tracer.class);
   private final static Random random = new Random();
 
-  private static long random64() {
+  static long nonZeroRandom64() {
     long id;
     do {
       id = random.nextLong();
@@ -81,9 +81,9 @@ public class Tracer {
           begin(System.currentTimeMillis()).
           end(0).
           description(description).
-          traceId(random64()).
+          traceId(nonZeroRandom64()).
           parents(EMPTY_PARENT_ARRAY).
-          spanId(random64()).
+          spanId(nonZeroRandom64()).
           processId(getProcessId()).
           build();
     } else {

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/9877e812/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java 
b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
index 9956ddb..afd0202 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
@@ -61,7 +61,7 @@ public class MilliSpan implements Span {
   private List<TimelineAnnotation> timeline = null;
   private final static Random random = new Random();
 
-  private static long random64() {
+  private static long nonZeroRandom64() {
     long id;
     do {
       id = random.nextLong();
@@ -77,7 +77,7 @@ public class MilliSpan implements Span {
       description(childDescription).
       traceId(traceId).
       parents(new long[] {spanId}).
-      spanId(random64()).
+      spanId(nonZeroRandom64()).
       processId(processId).
       build();
   }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/9877e812/htrace-core/src/test/java/org/apache/htrace/TestHTrace.java
----------------------------------------------------------------------
diff --git a/htrace-core/src/test/java/org/apache/htrace/TestHTrace.java 
b/htrace-core/src/test/java/org/apache/htrace/TestHTrace.java
index cd4eb28..0ab8f35 100644
--- a/htrace-core/src/test/java/org/apache/htrace/TestHTrace.java
+++ b/htrace-core/src/test/java/org/apache/htrace/TestHTrace.java
@@ -115,4 +115,14 @@ public class TestHTrace {
     tc.createSimpleTrace();
     tc.createSampleRpcTrace();
   }
+
+  @Test(timeout=60000)
+  public void testRootSpansHaveNonZeroSpanId() throws Exception {
+    TraceInfo traceInfo = new TraceInfo(100L, 200L);
+    TraceScope scope = Trace.startSpan("myRootSpan", traceInfo);
+    Assert.assertNotNull(scope);
+    Assert.assertEquals("myRootSpan", scope.getSpan().getDescription());
+    Assert.assertEquals(100L, scope.getSpan().getTraceId());
+    Assert.assertTrue(0 != scope.getSpan().getSpanId());
+  }
 }

Reply via email to