From bfd5fa283e2ba172368ea76c309d8bbc896152a9 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 31 Jan 2010 00:59:25 +0000 Subject: In __iter__, handle OSError from lstat in case a cache entry disappears. svn path=/main/trunk/; revision=15297 --- pym/portage/cache/flat_hash.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py index a010e5061..b014f170d 100644 --- a/pym/portage/cache/flat_hash.py +++ b/pym/portage/cache/flat_hash.py @@ -135,7 +135,11 @@ class database(fs_template.FsBased): if l.endswith(".cpickle"): continue p = os.path.join(dir_path, l) - st = os.lstat(p) + try: + st = os.lstat(p) + except OSError: + # Cache entry disappeared. + continue if stat.S_ISDIR(st.st_mode): # Only recurse 1 deep, in order to avoid iteration over # entries from another nested cache instance. This can -- cgit v1.2.3-1-g7c22