Skip to content

Concurrency Limit Span being created as an Orphan Span #10323

@VishalSharma-123

Description

@VishalSharma-123

Environment Details

  • Helidon Version: 4.3.x
  • Helidon SE or Helidon MP
  • JDK version: 21
  • OS: Linux

Problem Description

While testing out the new feature implemented in #9968 on a k8s based environment, I noticed that the "limit-span" that is being created, is created as an orphan span and not part of the trace tree of the actual request. Even though we have HTTP headers (x-b3-traceid, x-b3-parentspanid, x-b3-spanid, x-b3-sampled), it is not registered as the current span in the context. So, the Span.current().ifPresent() returns empty.

Due to this, the following line is never executed and the parent is not set for the limit-span.
Span.current().ifPresent(cs -> cs.context().asParent(spanBuilder))

I verified the same by adding debug statements in LimitSpan.java and Http1Connection.java
Image

Following is the snippet of the trace tree. In the trace tree, the limit-span is not showing up as the child of the "forward-psr-ric-sampleapp" span
Image

All the limit spans are created as an orphan span and have their separate traceIDs, recording a single span.
Image

Metadata

Metadata

Assignees

Labels

Type

Projects

Status

Sprint Scope

Relationships

None yet

Development

No branches or pull requests

Issue actions