diff --git a/ddtrace/internal/packages.py b/ddtrace/internal/packages.py index e309daa80f..e060791920 100644 --- a/ddtrace/internal/packages.py +++ b/ddtrace/internal/packages.py @@ -98,16 +98,19 @@ def _package_file_mapping(): mapping = {} for ilmd_d in il_md.distributions(): - if ilmd_d is not None and ilmd_d.files is not None: - d = Distribution(name=ilmd_d.metadata["name"], version=ilmd_d.version, path=None) - for f in ilmd_d.files: - if _is_python_source_file(f): - # mapping[fspath(f.locate())] = d - _path = fspath(f.locate()) - mapping[_path] = d - _realp = os.path.realpath(_path) - if _realp != _path: - mapping[_realp] = d + try: + if ilmd_d is not None and ilmd_d.files is not None: + d = Distribution(name=ilmd_d.metadata["name"], version=ilmd_d.version, path=None) + for f in ilmd_d.files: + if _is_python_source_file(f): + # mapping[fspath(f.locate())] = d + _path = fspath(f.locate()) + mapping[_path] = d + _realp = os.path.realpath(_path) + if _realp != _path: + mapping[_realp] = d + except ValueError: + continue return mapping diff --git a/releasenotes/notes/handle-potential-valueerror-on-importlib-10d14cb957cbd421.yaml b/releasenotes/notes/handle-potential-valueerror-on-importlib-10d14cb957cbd421.yaml new file mode 100644 index 0000000000..e9661010d0 --- /dev/null +++ b/releasenotes/notes/handle-potential-valueerror-on-importlib-10d14cb957cbd421.yaml @@ -0,0 +1,3 @@ +fixes: + - | + Handle potencial ValueError on importlib_metadata. Fixes #8068.