Fallback to softlock when unixlock fails (#1635)

This commit is contained in:
tastelikefeet
2026-03-06 16:26:18 +08:00
committed by GitHub
parent dbbf268e70
commit 3142a6eb33

View File

@@ -1,6 +1,7 @@
# Copyright (c) Alibaba, Inc. and its affiliates.
import contextlib
import errno
import hashlib
import os
import sys
@@ -286,6 +287,16 @@ def weak_file_lock(lock_file: Union[str, Path],
lock_file)
lock = SoftFileLock(lock_file, timeout=default_interval)
continue
raise
except OSError as e:
# Handle NFS stale file handle and similar issues
if e.errno in (errno.ESTALE, errno.ENOENT, errno.EREMOTEIO):
logger.warning(
'Encountered OSError (errno=%d) on %s, Falling back to SoftFileLock.',
e.errno, lock_file)
lock = SoftFileLock(lock_file, timeout=default_interval)
continue
raise
else:
break