[arvados] updated: 2.7.1-3-gd5960563ba

git repository hosting git at public.arvados.org
Wed Jan 3 21:00:09 UTC 2024


Summary of changes:
 services/fuse/arvados_fuse/unmount.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

       via  d5960563ba1aef727c64a0dff04da1adfed454c3 (commit)
      from  26369ea9a8f45f8a05931eb23ef4aec1059dccd2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit d5960563ba1aef727c64a0dff04da1adfed454c3
Author: Tom Clegg <tom at curii.com>
Date:   Fri Nov 10 17:18:13 2023 -0500

    20846: Avoid deadlock in unmount-and-replace race.
    
    refs #20846
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/services/fuse/arvados_fuse/unmount.py b/services/fuse/arvados_fuse/unmount.py
index 12d047a8f3..144c582ddc 100644
--- a/services/fuse/arvados_fuse/unmount.py
+++ b/services/fuse/arvados_fuse/unmount.py
@@ -154,6 +154,16 @@ def unmount(path, subtype=None, timeout=10, recursive=False):
             path = os.path.realpath(path)
             continue
         elif not mounted:
+            if was_mounted:
+                # This appears to avoid a race condition where we
+                # return control to the caller after running
+                # "fusermount -u -z" (see below), the caller (e.g.,
+                # arv-mount --replace) immediately tries to attach a
+                # new fuse mount at the same mount point, the
+                # lazy-unmount process unmounts that _new_ mount while
+                # it is being initialized, and the setup code waits
+                # forever for the new mount to be initialized.
+                time.sleep(1)
             return was_mounted
 
         if attempted:

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list