-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Closed
Labels
Description
Component(s)
receiver/datadog
What happened?
Description
The receiver.datadogreceiver.Enable128BitTraceID feature gate causes LRU cache concurrency issues. The current implementation uses the non-thread safe simplelru package within
golang-lru rather than the thread safe package at the root of that repo.
Steps to Reproduce
- Run the opentelemetry collector with the datadog receiver configured and the
--feature-gates=receiver.datadogreceiver.Enable128BitTraceIDflag set. - Receive traces through the receiver.
Expected Result
A concurrent cache write without a fatal error.
Actual Result
fatal error: concurrent map writes
Collector version
0.131.0
Environment information
Environment
OS: Amazon Linux 2
OpenTelemetry Collector configuration
Log output
2025-09-11 18:31:27.441Z fatal error: concurrent map writes
2025-09-11 18:31:27.449Z
2025-09-11 18:31:27.449Z goroutine 164 [running]:
2025-09-11 18:31:27.449Z internal/runtime/maps.fatal({0xc29e367?, 0x50?})
2025-09-11 18:31:27.449Z runtime/panic.go:1058 +0x18
2025-09-11 18:31:27.449Z github.com/hashicorp/golang-lru/v2/simplelru.(*LRU[...]).Add(0xd76ccc0, 0x889ea6807553b772, {0x68, 0xc3, 0x15, 0x7f, 0x0, 0x0, 0x0, 0x0, ...})
2025-09-11 18:31:27.449Z github.com/hashicorp/golang-lru/v2@v2.0.7/simplelru/lru.go:60 +0x185
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver/internal/translator.traceID64to128(0xc001bd81c0, 0xc001e2b800)
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver@v0.131.0/internal/translator/traces_translator.go:97 +0x145
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver/internal/translator.ToTraces(0xc001d6a600, 0xc001bc65b0, 0xc000da6a00, 0xc001e2b800)
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver@v0.131.0/internal/translator/traces_translator.go:198 +0xfda
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver.(*datadogReceiver).handleTraces(0xc0015c2000, {0xd64ffa0, 0xc003fea480}, 0xc000da6a00)
2025-09-11 18:31:27.449Z github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver@v0.131.0/receiver.go:285 +0x398
2025-09-11 18:31:27.449Z net/http.HandlerFunc.ServeHTTP(0xc0002bd800?, {0xd64ffa0?, 0xc003fea480?}, 0x0?)
2025-09-11 18:31:27.449Z net/http/server.go:2294 +0x29
2025-09-11 18:31:27.449Z net/http.(*ServeMux).ServeHTTP(0xc001266d80?, {0xd64ffa0, 0xc003fea480}, 0xc000da6a00)
2025-09-11 18:31:27.449Z net/http/server.go:2822 +0x1c4
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp.(*decompressor).ServeHTTP(0xc001266d80, {0xd64ffa0, 0xc003fea480}, 0xc000da6a00)
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp@v0.131.0/compression.go:239 +0x204
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp.(*ServerConfig).ToServer.maxRequestBodySizeInterceptor.func2({0xd64ffa0, 0xc003fea480}, 0xc000da6a00)
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp@v0.131.0/confighttp.go:631 +0x87
2025-09-11 18:31:27.449Z net/http.HandlerFunc.ServeHTTP(0xd65fca8?, {0xd64ffa0?, 0xc003fea480?}, 0xd55d250?)
2025-09-11 18:31:27.449Z net/http/server.go:2294 +0x29
2025-09-11 18:31:27.449Z go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP(0xc00037d900, {0xd632ee0, 0xc001bd80e0}, 0xc000da6780, {0xd58a620, 0xc00180ace0})
2025-09-11 18:31:27.449Z go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.62.0/handler.go:180 +0x12fa
2025-09-11 18:31:27.449Z go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1({0xd632ee0?, 0xc001bd80e0?}, 0x7b2701?)
2025-09-11 18:31:27.449Z go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.62.0/handler.go:67 +0x35
2025-09-11 18:31:27.449Z net/http.HandlerFunc.ServeHTTP(0xc000da6640?, {0xd632ee0?, 0xc001bd80e0?}, 0xc005a82b20?)
2025-09-11 18:31:27.449Z net/http/server.go:2294 +0x29
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp.(*clientInfoHandler).ServeHTTP(0xc00125d830, {0xd632ee0, 0xc001bd80e0}, 0xc000da6640)
2025-09-11 18:31:27.449Z go.opentelemetry.io/collector/config/confighttp@v0.131.0/clientinfohandler.go:26 +0xee
2025-09-11 18:31:27.449Z net/http.serverHandler.ServeHTTP({0xd5db910?}, {0xd632ee0?, 0xc001bd80e0?}, 0x6?)
2025-09-11 18:31:27.449Z net/http/server.go:3301 +0x8e
2025-09-11 18:31:27.449Z net/http.(*conn).serve(0xc0052b9320, {0xd65fca8, 0xc000a05830})
2025-09-11 18:31:27.449Z net/http/server.go:2102 +0x625
2025-09-11 18:31:27.449Z created by net/http.(*Server).Serve in goroutine 238
2025-09-11 18:31:27.449Z net/http/server.go:3454 +0x485Additional context
No response
Tip
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.
Reactions are currently unavailable