Tracer Version(s)
2.30.0
Ruby Version(s)
All
Bug Report
We've internally uncovered a regression in the 29.0.0.1.0 version of the libdatadog dependency of dd-trace-rb which affects profiling.
The affected version of libdatadog is used by dd-trace-rb (datadog gem) 2.30.0. Earlier versions of dd-trace-rb / libdatadog are not affected.
Reproduction Code
On a minimal system with no CA certificates (e.g. Ubuntu 22.04 docker image with dpkg --force-depends --purge ca-certificates) the profiler will fail to start with the following error:
/var/lib/gems/3.0.0/gems/datadog-2.30.0/lib/datadog/profiling/http_transport.rb:28:in initialize': Failed to initialize transport: ddog_prof_Exporter_new failed: failed to initialize TLS configuration: unexpected error: No CA certificates were loaded from the system (ArgumentError)`
In particular, this error always happens when the profiler is turned on, regardless of TLS certificates actually being needed at all.
We're still working on releasing a fix. Any of the following work-arounds can be used to get past this issue:
- Install
ca-certificates or equivalent system package or...
- Revert back to using version 2.29.0 of dd-trace-rb / the
datadog gem or...
- Disable profiling (via
DD_PROFILING_ENABLED=false or Datadog.configure { c.profiling.enabled = false } via code)
Tracer Version(s)
2.30.0
Ruby Version(s)
All
Bug Report
We've internally uncovered a regression in the 29.0.0.1.0 version of the
libdatadogdependency of dd-trace-rb which affects profiling.The affected version of libdatadog is used by dd-trace-rb (datadog gem) 2.30.0. Earlier versions of dd-trace-rb / libdatadog are not affected.
Reproduction Code
On a minimal system with no CA certificates (e.g. Ubuntu 22.04 docker image with
dpkg --force-depends --purge ca-certificates) the profiler will fail to start with the following error:In particular, this error always happens when the profiler is turned on, regardless of TLS certificates actually being needed at all.
We're still working on releasing a fix. Any of the following work-arounds can be used to get past this issue:
ca-certificatesor equivalent system package or...datadoggem or...DD_PROFILING_ENABLED=falseorDatadog.configure { c.profiling.enabled = false }via code)