Skip to content

Commit

Permalink
pythongh-104839: Prevent test_venv AddressSanitizer spam (pythonGH-10…
Browse files Browse the repository at this point in the history
…5005)

Pass any ASAN_OPTIONS environment variable through to the child process
so that leak sanitizer being disabled on our CI and buildbots stays
true in the children.
(cherry picked from commit a17f160)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
  • Loading branch information
gpshead authored and miss-islington committed May 27, 2023
1 parent 2c02c68 commit 0e38b6c
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions Lib/test/test_venv.py
Original file line number Diff line number Diff line change
Expand Up @@ -600,15 +600,14 @@ def test_zippath_from_non_installed_posix(self):
ld_library_path_env = "DYLD_LIBRARY_PATH"
else:
ld_library_path_env = "LD_LIBRARY_PATH"
# Note that in address sanitizer mode, the current runtime
# implementation leaks memory due to not being able to correctly
# clean all unicode objects during runtime shutdown. Therefore,
# this uses subprocess.run instead of subprocess.check_call to
# maintain the core of the test while not failing due to the refleaks.
# This should be able to use check_call once all refleaks are fixed.
subprocess.run(cmd,
env={"PYTHONPATH": pythonpath,
ld_library_path_env: ld_library_path})
child_env = {
"PYTHONPATH": pythonpath,
ld_library_path_env: ld_library_path,
}
if asan_options := os.environ.get("ASAN_OPTIONS"):
# prevent https://github.com/python/cpython/issues/104839
child_env["ASAN_OPTIONS"] = asan_options
subprocess.check_call(cmd, env=child_env)
envpy = os.path.join(self.env_dir, self.bindir, self.exe)
# Now check the venv created from the non-installed python has
# correct zip path in pythonpath.
Expand Down

0 comments on commit 0e38b6c

Please sign in to comment.