[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