7846: Better directory entry invalidation, fixes MagicDirApiError test. Also
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 21 Jan 2016 18:37:20 +0000 (13:37 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 21 Jan 2016 18:37:20 +0000 (13:37 -0500)
fix bug in typo in exception handler.

services/fuse/arvados_fuse/__init__.py
services/fuse/arvados_fuse/fusedir.py

index 65f117b55a700b9aa218a143a7f80f00e982cb3a..eecd91845acbf9563e4b24882319512253355e59 100644 (file)
@@ -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()
index 00efab765a6d59b52f33b62b80847247fb368c1e..86cfa528cae376792e64668cfd8e09777f4b33b1 100644 (file)
@@ -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