gh-142836: Avoid /proc fd pipes on Solaris (#142853)

This commit is contained in:
Jason R. Coombs 2025-12-17 02:38:00 -05:00 committed by GitHub
parent 89729f2ef7
commit c35b812e77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View file

@ -3563,10 +3563,22 @@ def _assert_find_function(self, file_content, func_name, expected):
def _fd_dir_for_pipe_targets(self):
"""Return a directory exposing live file descriptors, if any."""
return self._proc_fd_dir() or self._dev_fd_dir()
def _proc_fd_dir(self):
"""Return /proc-backed fd dir when it can be used for pipes."""
# GH-142836: Opening /proc/self/fd entries for pipes raises EACCES on
# Solaris, so prefer other mechanisms there.
if sys.platform.startswith("sunos"):
return None
proc_fd = "/proc/self/fd"
if os.path.isdir(proc_fd) and os.path.exists(os.path.join(proc_fd, '0')):
return proc_fd
return None
def _dev_fd_dir(self):
"""Return /dev-backed fd dir when usable."""
dev_fd = "/dev/fd"
if os.path.isdir(dev_fd) and os.path.exists(os.path.join(dev_fd, '0')):
if sys.platform.startswith("freebsd"):
@ -3576,7 +3588,6 @@ def _fd_dir_for_pipe_targets(self):
except FileNotFoundError:
return None
return dev_fd
return None
def test_find_function_empty_file(self):

View file

@ -0,0 +1 @@
Accommodated Solaris in ``test_pdb.test_script_target_anonymous_pipe``.