From f9e3b58d7ec2190cdb517ff89ca82019b8eb78da Mon Sep 17 00:00:00 2001 From: becker33 Date: Fri, 10 Feb 2017 10:23:04 -0800 Subject: Make distro more robust to unreadable files (#3110) * Make distro more robust to unreadable files. Will upstream * Comment for clarify --- lib/spack/external/distro.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/spack/external/distro.py b/lib/spack/external/distro.py index ca25339ec9..c4905c25a5 100644 --- a/lib/spack/external/distro.py +++ b/lib/spack/external/distro.py @@ -993,13 +993,18 @@ class LinuxDistribution(object): continue match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) if match: - filepath = os.path.join(_UNIXCONFDIR, basename) - distro_info = self._parse_distro_release_file(filepath) - if 'name' in distro_info: - # The name is always present if the pattern matches - self.distro_release_file = filepath - distro_info['id'] = match.group(1) - return distro_info + try: + filepath = os.path.join(_UNIXCONFDIR, basename) + distro_info = self._parse_distro_release_file(filepath) + if 'name' in distro_info: + # The name is always present if the pattern matches + self.distro_release_file = filepath + distro_info['id'] = match.group(1) + return distro_info + except IOError: + # We found a file we do not have permission to read + # Continue checking candidate files for distro file. + continue return {} def _parse_distro_release_file(self, filepath): -- cgit v1.2.3-70-g09d2