mirror of
https://github.com/HKUDS/LightRAG.git
synced 2025-12-07 04:20:45 +00:00
Improve document deletion error handling and message consistency
- Standardize deletion log messages - Add try-catch for file operations - Improve enqueued file error handling
This commit is contained in:
parent
a4c4b1182a
commit
9b7ed84e05
@ -1415,7 +1415,7 @@ async def background_delete_documents(
|
|||||||
if result.status == "success":
|
if result.status == "success":
|
||||||
successful_deletions.append(doc_id)
|
successful_deletions.append(doc_id)
|
||||||
success_msg = (
|
success_msg = (
|
||||||
f"Deleted document {i}/{total_docs}: {doc_id}[{file_path}]"
|
f"Document deleted {i}/{total_docs}: {doc_id}[{file_path}]"
|
||||||
)
|
)
|
||||||
logger.info(success_msg)
|
logger.info(success_msg)
|
||||||
async with pipeline_status_lock:
|
async with pipeline_status_lock:
|
||||||
@ -1432,15 +1432,28 @@ async def background_delete_documents(
|
|||||||
# check and delete files from input_dir directory
|
# check and delete files from input_dir directory
|
||||||
file_path = doc_manager.input_dir / result.file_path
|
file_path = doc_manager.input_dir / result.file_path
|
||||||
if file_path.exists():
|
if file_path.exists():
|
||||||
file_path.unlink()
|
try:
|
||||||
deleted_files.append(file_path.name)
|
file_path.unlink()
|
||||||
file_delete_msg = f"Successfully deleted input_dir file: {result.file_path}"
|
deleted_files.append(file_path.name)
|
||||||
logger.info(file_delete_msg)
|
file_delete_msg = f"Successfully deleted input_dir file: {result.file_path}"
|
||||||
async with pipeline_status_lock:
|
logger.info(file_delete_msg)
|
||||||
pipeline_status["latest_message"] = file_delete_msg
|
async with pipeline_status_lock:
|
||||||
pipeline_status["history_messages"].append(
|
pipeline_status["latest_message"] = (
|
||||||
file_delete_msg
|
file_delete_msg
|
||||||
)
|
)
|
||||||
|
pipeline_status["history_messages"].append(
|
||||||
|
file_delete_msg
|
||||||
|
)
|
||||||
|
except Exception as file_error:
|
||||||
|
file_error_msg = f"Failed to delete input_dir file {result.file_path}: {str(file_error)}"
|
||||||
|
logger.debug(file_error_msg)
|
||||||
|
async with pipeline_status_lock:
|
||||||
|
pipeline_status["latest_message"] = (
|
||||||
|
file_error_msg
|
||||||
|
)
|
||||||
|
pipeline_status["history_messages"].append(
|
||||||
|
file_error_msg
|
||||||
|
)
|
||||||
|
|
||||||
# Also check and delete files from __enqueued__ directory
|
# Also check and delete files from __enqueued__ directory
|
||||||
enqueued_dir = doc_manager.input_dir / "__enqueued__"
|
enqueued_dir = doc_manager.input_dir / "__enqueued__"
|
||||||
@ -1457,14 +1470,20 @@ async def background_delete_documents(
|
|||||||
enqueued_file.unlink()
|
enqueued_file.unlink()
|
||||||
deleted_files.append(enqueued_file.name)
|
deleted_files.append(enqueued_file.name)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Deleted enqueued file: {enqueued_file.name}"
|
f"Successfully deleted enqueued file: {enqueued_file.name}"
|
||||||
)
|
)
|
||||||
except Exception as enqueued_error:
|
except Exception as enqueued_error:
|
||||||
logger.error(
|
file_error_msg = f"Failed to delete enqueued file {enqueued_file.name}: {str(enqueued_error)}"
|
||||||
f"Failed to delete enqueued file {enqueued_file.name}: {str(enqueued_error)}"
|
logger.debug(file_error_msg)
|
||||||
)
|
async with pipeline_status_lock:
|
||||||
|
pipeline_status["latest_message"] = (
|
||||||
|
file_error_msg
|
||||||
|
)
|
||||||
|
pipeline_status["history_messages"].append(
|
||||||
|
file_error_msg
|
||||||
|
)
|
||||||
|
|
||||||
if not deleted_files:
|
if deleted_files == []:
|
||||||
file_error_msg = f"File deletion skipped, missing file: {result.file_path}"
|
file_error_msg = f"File deletion skipped, missing file: {result.file_path}"
|
||||||
logger.warning(file_error_msg)
|
logger.warning(file_error_msg)
|
||||||
async with pipeline_status_lock:
|
async with pipeline_status_lock:
|
||||||
|
|||||||
@ -2249,7 +2249,6 @@ class LightRAG:
|
|||||||
# Still need to delete the doc status and full doc
|
# Still need to delete the doc status and full doc
|
||||||
await self.full_docs.delete([doc_id])
|
await self.full_docs.delete([doc_id])
|
||||||
await self.doc_status.delete([doc_id])
|
await self.doc_status.delete([doc_id])
|
||||||
logger.info(f"Deleted document {doc_id} with no associated chunks")
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(
|
logger.error(
|
||||||
f"Failed to delete document {doc_id} with no chunks: {e}"
|
f"Failed to delete document {doc_id} with no chunks: {e}"
|
||||||
@ -2258,7 +2257,7 @@ class LightRAG:
|
|||||||
|
|
||||||
async with pipeline_status_lock:
|
async with pipeline_status_lock:
|
||||||
log_message = (
|
log_message = (
|
||||||
f"Document {doc_id} is deleted without associated chunks."
|
f"Document deleted without associated chunks: {doc_id}"
|
||||||
)
|
)
|
||||||
logger.info(log_message)
|
logger.info(log_message)
|
||||||
pipeline_status["latest_message"] = log_message
|
pipeline_status["latest_message"] = log_message
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user