github open-telemetry/opentelemetry-ebpf-instrumentation v0.12.2

3 hours ago

Overview

v0.12.2 is an expedited patch release following v0.12.1 that fixes a log-enricher defect capable of deadlocking instrumented shell workloads. It also includes protocol reliability fixes merged since the previous release.

Critical reliability fixes

  • The log enricher now only consumes pipes registered as a tracked process's stdout or stderr, keyed by inode and device. Previously it intercepted every pipe write of a tracked process: shell command substitutions ($(...)) came back empty in any enriched namespace, and since v0.12.0 the capture-time warm-open could hold a substitution pipe's write end for up to 30 minutes, deadlocking the shell and then feeding it the enricher's own output. Non-log pipes are no longer zeroed, captured, or held; enriched lines are delivered through a live owner's descriptor with per-event references, so short-lived writers' final lines still land without holding pipes open. (#3107)
  • Serialized descriptor-cache publication with pipe retirement, closing a race where a destination opened concurrently with its owner's teardown could leave an unretirable cached write end held until cache expiry. (#3130)

Protocol fixes

  • Correlated TLS connections that OpenSSL manages through memory BIOs by matching ciphertext prefixes, restoring traces for applications that do their own socket I/O. (#3023)
  • Decoded HTTP/2 headers in capture order, preventing HPACK dynamic-table drift from misattributing header values. (#3039)
  • Reassembled Aerospike responses split across TCP reads in kernel, fixing missed or truncated Aerospike spans. (#3082)

Behavior changes and compatibility notes

  • The application_span and application_span_sizes features (Grafana-convention traces_spanmetrics_* names) are deprecated in favor of application_span_otel. Nothing is removed and no metric stops being emitted; existing configurations keep working and log a deprecation warning. (#2979)
  • Log enrichment no longer touches pipes that are not a tracked process's stdout/stderr: application data on other pipes now passes through untouched and un-enriched, including pipelines where a process writes logs to a pipe on a non-stdio descriptor. (#3107)

What's Changed

General

Fixed

  • logenricher: only consume pipes registered as tracked stdout/stderr by @mmat11 in #3107

Dependencies

New Contributors

Full Changelog: v0.12.1...v0.12.2

Don't miss a new opentelemetry-ebpf-instrumentation release

NewReleases is sending notifications on new releases.