Skip to content

Commit 50547e3

Browse files
author
Kapil Rastogi
authored
Merge pull request #169 from ExpediaDotCom/merge-spantree-fix
fix the bug where span forest should have only one tree after the mer…
2 parents 91b96a2 + 4982148 commit 50547e3

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

reader/src/main/scala/com/expedia/www/haystack/trace/reader/readers/transformers/ClockSkewTransformer.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import com.expedia.www.haystack.trace.reader.readers.utils.{MutableSpanForest, S
3030
class ClockSkewTransformer extends SpanTreeTransformer {
3131

3232
override def transform(forest: MutableSpanForest): MutableSpanForest = {
33+
require(forest.getAllTrees.size == 1)
34+
3335
val clockedSkewAdjusted = adjustSkew(forest.getAllTrees.head, None)
3436
forest.updateUnderlyingSpans(clockedSkewAdjusted)
3537
}

reader/src/main/scala/com/expedia/www/haystack/trace/reader/readers/utils/SpanTree.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ case class MutableSpanForest(private var spans: Seq[Span]) {
6666
})
6767

6868
updateUnderlyingSpanWith(toBeUpdatedUnderlyingSpans)
69+
this.forest = mutable.ListBuffer[SpanTree](root)
70+
needForestUpdate = false
6971
this
7072
}
7173

reader/src/test/scala/com/expedia/www/haystack/trace/reader/unit/readers/transformers/InvalidParentTransformerSpec.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ class InvalidParentTransformerSpec extends BaseUnitTestSpec {
4141
)
4242

4343
When("invoking transform")
44-
val transformedSpans = new InvalidParentTransformer().transform(MutableSpanForest(spans)).getUnderlyingSpans
44+
val transformedSpanTree = new InvalidParentTransformer().transform(MutableSpanForest(spans))
45+
val transformedSpans = transformedSpanTree.getUnderlyingSpans
4546

4647
Then("mark root to be parent of spans with invalid parent id")
4748
transformedSpans.length should be(3)
@@ -54,6 +55,8 @@ class InvalidParentTransformerSpec extends BaseUnitTestSpec {
5455

5556
val cSpan = transformedSpans.find(_.getSpanId == "c")
5657
cSpan.get.getParentSpanId should be("a")
58+
59+
transformedSpanTree.getAllTrees.size shouldBe 1
5760
}
5861

5962
it("should mark root as parent for spans with parent ids that are not in the trace") {

0 commit comments

Comments
 (0)