rules_fuzzing
rules_fuzzing copied to clipboard
Bazel examples failing to build due to obscure python deps error
Expected Behavior
rules_fuzzing
examples work "out of the box" (after installing dependencies of course)
Actual Behavior
Examples are not working and are failing due to some strange python error.
Steps to Reproduce the Problem
-
git clone [email protected]:bazelbuild/rules_fuzzing.git && cd rules_fuzzing
- Try to run
bazel build //examples:empty_fuzz_target
This results in the following error:
INFO: Repository fuzzing_py_deps_absl_py instantiated at:
/home/xansec/rules_fuzzing/WORKSPACE:31:13: in <toplevel>
/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/fuzzing_py_deps/requirements.bzl:47:20: in install_deps
Repository rule whl_library defined at:
/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/pip_repository.bzl:712:30: in <toplevel>
ERROR: An error occurred during the fetch of repository 'fuzzing_py_deps_absl_py':
Traceback (most recent call last):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/pip_repository.bzl", line 688, column 13, in _whl_library_impl
fail("whl_library %s failed: %s (%s)" % (rctx.attr.name, result.stdout, result.stderr))
Error in fail: whl_library fuzzing_py_deps_absl_py failed: (ERROR: Exception:
Traceback (most recent call last):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 247, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/commands/wheel.py", line 108, in run
session = self.get_default_session(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 98, in get_default_session
self._session = self.enter_context(self._build_session(options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/__main__.py", line 31, in <module>
sys.exit(_main())
^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/main.py", line 70, in main
return command.main(cmd_args)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 101, in main
return self._main(args)
^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 216, in _main
self.handle_pip_version_check(options)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 179, in handle_pip_version_check
session = self._build_session(
^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 450, in <module>
main()
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 427, in main
subprocess.run(pip_args, check=True, env=env)
File "/usr/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--isolated', 'wheel', '--no-deps', '--require-hashes', '-r', '/tmp/tmp2tuw44f9']' returned non-zero exit status 1.
)
ERROR: /home/xansec/rules_fuzzing/WORKSPACE:31:13: fetching whl_library rule //external:fuzzing_py_deps_absl_py: Traceback (most recent call last):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/pip_repository.bzl", line 688, column 13, in _whl_library_impl
fail("whl_library %s failed: %s (%s)" % (rctx.attr.name, result.stdout, result.stderr))
Error in fail: whl_library fuzzing_py_deps_absl_py failed: (ERROR: Exception:
Traceback (most recent call last):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 247, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/commands/wheel.py", line 108, in run
session = self.get_default_session(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 98, in get_default_session
self._session = self.enter_context(self._build_session(options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/__main__.py", line 31, in <module>
sys.exit(_main())
^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/main.py", line 70, in main
return command.main(cmd_args)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 101, in main
return self._main(args)
^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 216, in _main
self.handle_pip_version_check(options)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 179, in handle_pip_version_check
session = self._build_session(
^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 450, in <module>
main()
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 427, in main
subprocess.run(pip_args, check=True, env=env)
File "/usr/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--isolated', 'wheel', '--no-deps', '--require-hashes', '-r', '/tmp/tmp2tuw44f9']' returned non-zero exit status 1.
)
ERROR: /home/xansec/rules_fuzzing/fuzzing/tools/BUILD:31:10: //fuzzing/tools:make_corpus_dir depends on @fuzzing_py_deps_absl_py//:pkg in repository @fuzzing_py_deps_absl_py which failed to fetch. no such package '@fuzzing_py_deps_absl_py//': whl_library fuzzing_py_deps_absl_py failed: (ERROR: Exception:
Traceback (most recent call last):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 247, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/commands/wheel.py", line 108, in run
session = self.get_default_session(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 98, in get_default_session
self._session = self.enter_context(self._build_session(options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/__main__.py", line 31, in <module>
sys.exit(_main())
^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/main.py", line 70, in main
return command.main(cmd_args)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 101, in main
return self._main(args)
^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/base_command.py", line 216, in _main
self.handle_pip_version_check(options)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 179, in handle_pip_version_check
session = self._build_session(
^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/network/session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
return next(matches, None)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
matches = (
^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 175, in _iter_distributions
yield from finder.find(location)
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 79, in find
for dist, info_location in self._find_impl(location):
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_envs.py", line 64, in _find_impl
raw_name = get_dist_name(dist)
^^^^^^^^^^^^^^^^^^^
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/pypi__pip/pip/_internal/metadata/importlib/_compat.py", line 52, in get_dist_name
name = cast(Any, dist).name
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PathDistribution' object has no attribute 'name'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 450, in <module>
main()
File "/home/xansec/.cache/bazel/_bazel_xansec/3c1ff63d7ec3e40e9da6884ef889497c/external/rules_python/python/pip_install/tools/wheel_installer/wheel_installer.py", line 427, in main
subprocess.run(pip_args, check=True, env=env)
File "/usr/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--isolated', 'wheel', '--no-deps', '--require-hashes', '-r', '/tmp/tmp2tuw44f9']' returned non-zero exit status 1.
)
ERROR: Analysis of target '//examples:empty_fuzz_test' failed; build aborted:
INFO: Elapsed time: 0.920s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)
Fetching @local_config_cc; fetching
This seems to be a pip issue? For the record, I also forked and created a release from HEAD since I saw that rules_python
and installation steps were updated, however following the latest commit did not resolve the problem either.
Things I've tried
- Changing python versions
- Explicitly including
rules_python
- Reinstalling bazel
Specifications
- Version:
rules_fuzzing-0.3.2
bazel-5.4.0
Python 3.11.3
pip 23.1.2
clang 15.0.7
- Platform: Manjaro Linux 6.1.31-2-MANJARO
Thanks for reporting this issue! Can you confirm it is still happening at the repository HEAD? There were some fixes checked in past v0.3.2, but they haven't yet been incorporated in a new release.
Yes, I can confirm. I created my own release here pointing to HEAD: https://github.com/xansec/rules_fuzzing/releases/tag/rules_fuzzing-0.3.3
And received the same issue. Only thing I changed was default clang toolchain because I didn't want to install clang10, but this should be unrelated to the problem.
Also of note, this command (referenced in the above error output):
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--isolated', 'wheel', '--no-deps',
'--require-hashes', '-r', '/tmp/tmp2tuw44f9']' returned non-zero exit status 1.
when I run manually succeeds, so this must be failing in the bazel environment somewhere.
I hit this too. The relevant error seems to be:
AttributeError: 'PathDistribution' object has no attribute 'name'
Which seems to be a problem with python 3.11 and the importlib_metadata package.
The following is a workaround that worked for me:
- Install Python 3.9
- Symlink
python3
to be Python 3.9 - Rerun the bazel command
Thanks! As an aside, I was also able to workaround this with pyenv
:
pyenv global 3.9.0
I'm sure local will work if you use conda or venvs.