The GitHub Actions job "Notify uv.lock conflicts" on airflow.git/main has failed. Run started by GitHub user ashb (triggered by ashb).
Head commit for run: f481758f04cc28d1a417c4671b8705cd6e5f83e8 / Ash Berlin-Taylor <[email protected]> Propagate task OTel trace context through IPC and into execution API requests (#66151) The supervisor makes HTTP calls (XCom pushes, RTIF writes, connection lookups) on behalf of the task process via a Unix socket IPC channel. Without explicit propagation, those calls either float under the supervisor's own span or are unparented entirely — the task's trace context never crosses the process boundary. This commit wires the full chain: IPC leg (task process → supervisor): - Add traceparent: str | None = None field to _RequestFrame - _make_frame() injects the task runner's active W3C traceparent into every outgoing IPC frame via TraceContextTextMapPropagator.inject() - handle_requests() extracts the traceparent and calls otel_context.attach() before dispatching each request, restoring the task's trace context in the supervisor process for that request's lifetime - TriggerCommsDecoder.asend() now calls _make_frame() instead of constructing _RequestFrame directly, so trigger IPC frames carry the active span's traceparent too HTTP leg (supervisor → execution API): - inject_trace_context event hook on the httpx Client propagates the currently-active span's traceparent header on every outgoing request, linking server-side spans to the correct task span - _log_and_trace_retry records http.retry events on the active span alongside the existing log warning Dependency cleanup: - Move opentelemetry-api>=1.27.0 from [otel] optional extras to base [dependencies] in shared/observability — it flows unconditionally into task-sdk via shared_distributions, the same way airflow-core already has it unconditionally - Replace try/except ImportError guards and _NoOpTracer fallbacks in comms.py, supervisor.py, and client.py with direct imports; inject() and get_current_span() are no-ops when no TracerProvider is configured, so the guards were only testing "is OTel installed?" not "is it enabled?" - Introduce _FrameMixin (plain Python mixin, not a msgspec.Struct) to share _encoder and as_bytes() between _RequestFrame and _ResponseFrame Report URL: https://github.com/apache/airflow/actions/runs/25375700516 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
