mirror of
https://github.com/Kozea/Radicale.git
synced 2025-08-04 18:22:26 +00:00
catch permissions errors and display owner+user information
This commit is contained in:
parent
9c50f154fd
commit
e36d5f2c01
2 changed files with 12 additions and 3 deletions
|
@ -29,7 +29,7 @@ import sys
|
|||
import time
|
||||
from typing import ClassVar, Iterator, Optional, Type
|
||||
|
||||
from radicale import config
|
||||
from radicale import config, pathutils, utils
|
||||
from radicale.log import logger
|
||||
from radicale.storage.multifilesystem.base import CollectionBase, StorageBase
|
||||
from radicale.storage.multifilesystem.cache import CollectionPartCache
|
||||
|
@ -187,6 +187,9 @@ class Storage(
|
|||
logger.info("Storage item mtime resolution test result: %d %s" % (precision_unit, unit))
|
||||
if self._use_mtime_and_size_for_item_cache is False:
|
||||
logger.info("Storage cache using mtime and size for 'item' may be an option in case of performance issues")
|
||||
except PermissionError as e:
|
||||
logger.error("Directory permissions: %s / Effective user: %s", pathutils.path_permissions_as_string(self._get_collection_root_folder()), utils.user_groups_as_string())
|
||||
raise e
|
||||
except Exception:
|
||||
logger.warning("Storage item mtime resolution test result not successful")
|
||||
logger.debug("Storage cache action logging: %s", self._debug_cache_actions)
|
||||
|
|
|
@ -22,7 +22,7 @@ import sys
|
|||
from tempfile import TemporaryDirectory
|
||||
from typing import IO, AnyStr, ClassVar, Iterator, Optional, Type
|
||||
|
||||
from radicale import config, pathutils, storage, types
|
||||
from radicale import config, logger, pathutils, storage, types, utils
|
||||
from radicale.storage import multifilesystem # noqa:F401
|
||||
|
||||
|
||||
|
@ -161,7 +161,13 @@ class StorageBase(storage.BaseStorage):
|
|||
# Create parent dirs recursively
|
||||
self._makedirs_synced(parent_filesystem_path)
|
||||
# Possible race!
|
||||
os.makedirs(filesystem_path, exist_ok=True)
|
||||
try:
|
||||
os.makedirs(filesystem_path, exist_ok=True)
|
||||
except PermissionError as e:
|
||||
logger.error("Directory permissions: %s / Effective user: %s", pathutils.path_permissions_as_string(parent_filesystem_path), utils.user_groups_as_string())
|
||||
raise e
|
||||
except Exception:
|
||||
raise
|
||||
self._sync_directory(parent_filesystem_path)
|
||||
if sys.platform != "win32" and self._folder_umask:
|
||||
os.umask(oldmask)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue