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()); + } }
