#23070·OpenSearch

[BUG] 跟踪: TraceableTcpTransportChannel 为每个入站请求添加一个关闭监听器,从而在长期存在的传输通道上泄露跨度

作者: sstto创建于 2026年9月17日更新于 2026年9月18日
标签OtherTelemetry:Tracing

#10143 (2.11.0) 以来每个版本中都没有变化,包括 3.8.0 和当前的 main (0d76e10ad1329f731d1b704fcd4ae7107da850d8)。

观察到的情况

OpenSearch 3.0.0, telemetry.tracer.sampler.probability=0:

  • 数据节点上的旧代码量与入站传输流量成正比(每小时数 GB),没有回收,直到内存几乎满为止。
  • 手动设置 telemetry.tracer.enabled=false 可立即停止增长;保留的内存只有重启节点时才会释放。
  • 数据节点的类分布(使用 jcmd <pid> GC.class_histogram -all): 关闭监听器的每次请求留存量都共享一个实例数,等于节点处理的入站传输请求数。采样的跟踪点 ( SdkSpan ) 大约占 1% 之多;其余都是非记录的跟踪点。

内容来源: opensearch-project/OpenSearch