From 34c6ec6ef1ee19bd8d3718b5f3f1abd2ea0a185d Mon Sep 17 00:00:00 2001 From: Roland Date: Sun, 19 May 2024 17:34:09 -0600 Subject: [PATCH] Handling PermissionError when refreshing files. --- wrolpi/files/lib.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wrolpi/files/lib.py b/wrolpi/files/lib.py index c859445f..cde4d6ed 100644 --- a/wrolpi/files/lib.py +++ b/wrolpi/files/lib.py @@ -489,6 +489,10 @@ async def refresh_discover_paths(paths: List[pathlib.Path], idempotency: datetim # Directory may have been deleted during refresh. logger.warning(f'Cannot refresh directory because it is missing: {directory}', exc_info=e) continue + except PermissionError as e: + # Directory may have been deleted during refresh. + logger.warning(f'Do not have permission to refresh directory: {directory}', exc_info=e) + continue directories.extend(new_directories) files.extend(new_files) @@ -572,7 +576,11 @@ async def refresh_files(paths: List[pathlib.Path] = None, send_events: bool = Tr with flags.refresh_counting: while directories: directory = directories.pop() - files, dirs = get_files_and_directories(directory) + try: + files, dirs = get_files_and_directories(directory) + except PermissionError as e: + refresh_logger.error(f'Error refreshing {directory}', exc_info=e) + continue directories.extend(dirs) found_directories |= set(dirs) api_app.shared_ctx.refresh['counted_files'] = api_app.shared_ctx.refresh.get('counted_files',