From a53ad61f96369c737d973dc9c5c7015adcbfd935 Mon Sep 17 00:00:00 2001 From: Romain Marcadier Date: Mon, 6 Jan 2025 11:52:44 +0100 Subject: [PATCH] fix: workaround for otel agent dependency causes orchestrion failure Moved the blank import of `go.opentelemetry.io/collector/pdata/pprofile`` which was introduced to avoid `go mod tidy` from failing to resolve a coherent dependency closure into a new file guarded by a build tag so that it is not present in builds uder normal circumstances. This removes a dependency cycle caused by the `pprofile` package having a transitive dependency on `net/http`, while the `gopkg.in/DataDog/dd-trace-go.v1/internal` package is imported some code that is injected by orchestrion into `net/http` itself (resulting in a cycle, breaking builds). --- internal/agent.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/internal/agent.go b/internal/agent.go index 8b0023274a..f4bcdce8b0 100644 --- a/internal/agent.go +++ b/internal/agent.go @@ -11,14 +11,6 @@ import ( "os" "gopkg.in/DataDog/dd-trace-go.v1/internal/log" - - // OTel did a breaking change to the module go.opentelemetry.io/collector/pdata which is imported by the agent - // and go.opentelemetry.io/collector/pdata/pprofile depends on it and is breaking because of it - // For some reason the dependency closure won't let use upgrade this module past the point where it does not break anymore - // So we are forced to add a blank import of this module to give us back the control over its version - // - // TODO: remove this once github.com/datadog-agent/pkg/trace has upgraded both modules past the breaking change - _ "go.opentelemetry.io/collector/pdata/pprofile" ) const (