DataDog / dd-trace-py

Datadog Python APM Client
https://ddtrace.readthedocs.io/
Other
532 stars 408 forks source link

Datadog-Apm-Python-Library is failing to install v2.11.0 on Amazon Linux 2023 EC2 instances. #10285

Open jmak10 opened 3 weeks ago

jmak10 commented 3 weeks ago

Summary of problem

Latest version of Datadog-Apm-Python-Libarary, v2.11.0, has broken our installation of the datadog-agent.

By pinning the python library back to the v2.10.4 using the DD_APM_INSTRUMENTATION_LIBRARIES variable we were able to work around this issue.

DD_APM_INSTRUMENTATION_LIBRARIES="python:2.10.4" resolves the installation issue.

Stack trace for our datadog-agent installation that went awry is below:


* Installing YUM sources for Datadog

Receiver binary path is not executable: /opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/datadog/profiling/crashtracker/crashtracker_exe
Traceback (most recent call last):
  File "/usr/bin/yum", line 61, in <module>
    from dnf.cli import main
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/__init__.py", line 30, in <module>
    import dnf.base
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/base.py", line 32, in <module>
    from dnf.comps import CompsQuery
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/comps.py", line 27, in <module>
    from dnf.exceptions import CompsError
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/exceptions.py", line 22, in <module>
    import dnf.util
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/util.py", line 29, in <module>
    import dnf.callback
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/callback.py", line 22, in <module>
    import dnf.yum.rpmtrans
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib/python3.9/site-packages/dnf/yum/rpmtrans.py", line 26, in <module>
    import rpm
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 305, in _exec_module
    self.loader.exec_module(module)
  File "/usr/lib64/python3.9/site-packages/rpm/__init__.py", line 38, in <module>
    from rpm._rpm import *
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 312, in _exec_module
    self.call_back(module)
  File "/opt/datadog-packages/datadog-apm-library-python/2.11.0/ddtrace_pkgs/site-packages-ddtrace-py3.9-manylinux2014/ddtrace/internal/module.py", line 203, in call_back
    module.spec.loader = self.loader
TypeError: can't set attributes of built-in/extension type 'rpm.spec'
2024-08-19 22:09:43,840 WARNING [ddtrace.vendor.dogstatsd] [base.py:1031] [dd.service=bin dd.env= dd.version= dd.trace_id=0 dd.span_id=0] - Error submitting packet: [Errno 111] Connection refused, dropping thepacket and closing the socket

It looks like you hit an issue when trying to install the Datadog Agent.

Troubleshooting and basic usage information for the Datadog Agent are available at:

    https://docs.datadoghq.com/agent/basic_agent_usage/

Do you want to send a failure report to Datadog (including ddagent-install.log)? (y/[n])

Which version of dd-trace-py are you using?

v2.11.0 of datadog-apm-library-python

Which version of pip are you using?

Python 3.9.16

How can we reproduce your problem?

Attempt to install the following script on any Amazon Linux 2023 machine: https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh

What is the result that you get?

A failure to install.

What is the result that you expected?

A successful install of the datadog-agent and all apm libraries.

pierotibou commented 3 weeks ago

Hello,

Following the ddtrace 2.11.0 release yesterday, we indeed discovered that installing the Python auto-instrumentation with this new ddtrace version breaks the package manager (yum / dnf). Any later yum / dnf command fails. As raised above, pinning dd-trace to 2.10.4 will work around this issue while we work on releasing a fix as soon as possible

Sorry for the inconvenience.