From e399a43de926edcff6fb8383b2bc3b9b29db016b Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Thu, 21 Jan 2016 13:37:20 -0500 Subject: [PATCH] 7846: Better directory entry invalidation, fixes MagicDirApiError test. Also fix bug in typo in exception handler. --- services/fuse/arvados_fuse/__init__.py | 2 +- services/fuse/arvados_fuse/fusedir.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py index 65f117b55a..eecd91845a 100644 --- a/services/fuse/arvados_fuse/__init__.py +++ b/services/fuse/arvados_fuse/__init__.py @@ -254,7 +254,7 @@ class Inodes(object): llfuse.invalidate_inode(inode) def invalidate_entry(self, inode, name): - llfuse.invalidate_entry(inode, name) + llfuse.invalidate_entry(inode, name.encode(self.encoding)) def clear(self): self.inode_cache.clear() diff --git a/services/fuse/arvados_fuse/fusedir.py b/services/fuse/arvados_fuse/fusedir.py index 00efab765a..86cfa528ca 100644 --- a/services/fuse/arvados_fuse/fusedir.py +++ b/services/fuse/arvados_fuse/fusedir.py @@ -442,6 +442,7 @@ class CollectionDirectory(CollectionDirectoryBase): _logger.exception("arv-mount %s: error", self.collection_locator) if self.collection_record is not None and "manifest_text" in self.collection_record: _logger.error("arv-mount manifest_text is: %s", self.collection_record["manifest_text"]) + self.invalidate() return False @use_counter @@ -610,10 +611,11 @@ will appear if it exists. self.inodes.del_entry(e) return True else: + self.inodes.invalidate_entry(self.inode, k) self.inodes.del_entry(e) return False - except Exception as e: - _logger.debug('arv-mount exception keep %s', e) + except Exception as ex: + _logger.debug('arv-mount exception keep %s', ex) self.inodes.del_entry(e) return False -- 2.30.2