diff --git a/lightrag/operate.py b/lightrag/operate.py index 909d55a8..d978d77a 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -429,8 +429,12 @@ async def _rebuild_knowledge_from_chunks( async with semaphore: workspace = global_config.get("workspace", "") namespace = f"{workspace}:GraphDB" if workspace else "GraphDB" + # Sort src and tgt to ensure order-independent lock key generation + sorted_key_parts = sorted([src, tgt]) async with get_storage_keyed_lock( - f"{src}-{tgt}", namespace=namespace, enable_logging=False + f"{sorted_key_parts[0]}-{sorted_key_parts[1]}", + namespace=namespace, + enable_logging=False, ): try: await _rebuild_single_relationship(