Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: CriticalPath functions fail if root span has a FOLLOWS_FROM reference in another trace #2427

Open
swythan opened this issue Sep 9, 2024 · 1 comment

Comments

@swythan
Copy link

swythan commented Sep 9, 2024

What happened?

I'm unable to view traces originating from Airflow (coming in via OTLP to an opentelemetry-collector and the Jaeger exporter) because the root activity has a FOLLOWS_FROM link to a span in another trace.

Both getChildOfSpans and computeCriticalPath have trouble with this situation. The former prevents the page from loading. The latter seems to just slow it down a lot and it loads eventually.

I believe the critical bit is:

{
    "data": [
        {
            "traceID": "19845b251f80e4b7331f4d446b0a557b",
            "spans": [
                {
                    "traceID": "19845b251f80e4b7331f4d446b0a557b",
                    "spanID": "331f4d446b0a557b",
                    "operationName": "test_delta_instrumentation",
                    "references": [
                        {
                            "refType": "FOLLOWS_FROM",
                            "traceID": "a5f0b2f965afac53d7b68670c59b163a",
                            "spanID": "ff300a3a5e0b44db"
                        }
                    ],

N.B. I appreciate we're running an old version of the Jaeger UI (an upgrade is in progress), but these methods seem to still be essentially the same in the repo.

Steps to reproduce

  1. Use the "Upload" function on the Jaeger UI to load the the attached file:
    simplified-follows_from-trace.json
  2. Click through to the trace page
  3. Note that there is an error in the Javascript Console and the page never loads

Expected behavior

These functions should ignore FOLLOWS_FROM spans in other traces and the page should load and display properly.

Relevant log output

From the browser Javascript console:

TypeError: Cannot read properties of undefined (reading 'childSpanIds')
    at index-6410cb48.js:815:40808
    at Map.forEach (<anonymous>)
    at getChildOfSpans (index-6410cb48.js:815:40642)
    at criticalPathForTrace (index-6410cb48.js:815:42909)
    at et (index-6410cb48.js:228:19520)
    at TracePageImpl.render (index-6410cb48.js:815:48823)
    at kj (index-6410cb48.js:40:6570)
    at ij (index-6410cb48.js:40:6348)
    at Wk (index-6410cb48.js:40:47291)
    at Vk (index-6410cb48.js:40:41925)

Screenshot

No response

Additional context

No response

Jaeger backend version

Jaeger v1.49.0 | Jaeger UI v1.33.0

SDK

OpenTelementry Python SDK (embedded in Apache Airflow 2.10.0)

Pipeline

OTEL SDK -> OTEL Collector -> Jaeger exporter -> ?? -> ElasticSearch -> Jaeger UI

Stogage backend

ElasticSearch

Operating system

Linux

Deployment model

Kubernetes

Deployment configs

No response

@yurishkuro
Copy link
Member

Thanks for providing repro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants