10805: Skip llfuse.close() to avoid llfuse deadlocks in test suite.
authorTom Clegg <tom@curoverse.com>
Thu, 20 Jul 2017 12:29:34 +0000 (08:29 -0400)
committerTom Clegg <tom@curoverse.com>
Thu, 20 Jul 2017 12:30:01 +0000 (08:30 -0400)
See https://bitbucket.org/nikratio/python-llfuse/issues/108

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curoverse.com>

services/fuse/tests/integration_test.py
services/fuse/tests/mount_test_base.py

index 6a0c5de8992b856f4692376acb38d634f2250791..ba9cd88eb7d607c6f50beed6b1cecad17c4fabe9 100644 (file)
@@ -8,6 +8,7 @@ import arvados_fuse.command
 import atexit
 import functools
 import inspect
+import llfuse
 import logging
 import multiprocessing
 import os
@@ -76,6 +77,10 @@ class IntegrationTest(unittest.TestCase):
         def decorator(func):
             @functools.wraps(func)
             def wrapper(self, *args, **kwargs):
+                # Workaround for llfuse deadlock bug. See #10805, #8345,
+                # https://bitbucket.org/nikratio/python-llfuse/issues/108
+                llfuse.close = lambda *args: None
+
                 self.mount = None
                 try:
                     with arvados_fuse.command.Mount(
index 8518d8bbead64b34b0ebfcb8308e18bdc6c6c6d7..96ff889fcfbdb0de8e2d07ed0ea6a15ebd6f0bfe 100644 (file)
@@ -43,6 +43,10 @@ class MountTestBase(unittest.TestCase):
         self.api = api if api else arvados.safeapi.ThreadSafeApiCache(arvados.config.settings())
         self.llfuse_thread = None
 
+        # Workaround for llfuse deadlock bug. See #10805, #8345,
+        # https://bitbucket.org/nikratio/python-llfuse/issues/108
+        llfuse.close = lambda *args: None
+
     # This is a copy of Mount's method.  TODO: Refactor MountTestBase
     # to use a Mount instead of copying its code.
     def _llfuse_main(self):