From a06c77784468f071508ee432c0b0f6d58accbc21 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 28 Apr 2025 17:40:39 +0200 Subject: Set and restore umask to ensure lockfiles are atomically created with mode 0664. Using the default 0022 yields lock files with g-w, so trying to flock(2) from a different user failed. --- webmap-import | 2 ++ 1 file changed, 2 insertions(+) (limited to 'webmap-import') diff --git a/webmap-import b/webmap-import index 1d3f4ec..80f918e 100755 --- a/webmap-import +++ b/webmap-import @@ -518,6 +518,7 @@ def lockSourcePaths(layerdefs : dict[str,Any], lockdir: str) -> dict[str,int]: time) to reduce the time during which the sources prevented from being updated/downloaded, but their is some value in having consistency across the whole import process.""" + umask = os.umask(0o002) lockdir_fd = os.open(lockdir, O_RDONLY|O_CLOEXEC|O_PATH|O_DIRECTORY) try: ret = {} @@ -537,6 +538,7 @@ def lockSourcePaths(layerdefs : dict[str,Any], lockdir: str) -> dict[str,int]: os.close(lockdir_fd) except (OSError, ValueError): logging.exception('Could not close lockdir') + os.umask(umask) def releaseSourcePathLocks(lock_fds : dict[str,int]) -> None: """Release shared locks on the source paths. Closed FDs are removed from -- cgit v1.2.3