Files
railseek6/debug_storage_lock.py
2026-01-12 22:31:11 +08:00

60 lines
2.2 KiB
Python

import asyncio
import sys
sys.path.insert(0, 'LightRAG-main')
from lightrag.api.workspace_manager import WorkspaceManager
from lightrag.lightrag import LightRAG
from lightrag.kg.shared_storage import get_storage_lock, initialize_share_data
async def main():
# Ensure shared data is initialized (should be done by default workspace)
initialize_share_data()
print("Shared data initialized")
# Get workspace manager (singleton)
from lightrag.api.lightrag_server import workspace_manager
if workspace_manager is None:
print("Workspace manager not initialized, creating...")
from lightrag.api.workspace_manager import WorkspaceManager
workspace_manager = WorkspaceManager()
# Get RAG instance for workspace 'test'
rag = workspace_manager.get_rag('test')
print(f"RAG instance: {rag}")
print(f"RAG workspace: {rag.workspace}")
print(f"RAG storages status: {rag._storages_status}")
# Check doc_status storage
doc_status = rag.doc_status
print(f"doc_status type: {type(doc_status)}")
print(f"doc_status._storage_lock: {doc_status._storage_lock}")
# Check global storage lock
lock = get_storage_lock()
print(f"Global storage lock: {lock}")
print(f"Global storage lock._lock: {lock._lock if hasattr(lock, '_lock') else 'N/A'}")
# Initialize storages
if rag._storages_status != rag._storages_status.FINALIZED:
print("Initializing storages...")
await rag.initialize_storages()
print(f"After initialization, storages status: {rag._storages_status}")
print(f"doc_status._storage_lock after init: {doc_status._storage_lock}")
if doc_status._storage_lock is None:
print("ERROR: _storage_lock still None!")
else:
print("Lock seems okay")
else:
print("Storages already initialized")
# Try to call get_docs_paginated (should not raise error)
try:
result = await doc_status.get_docs_paginated(page=1, page_size=10)
print(f"get_docs_paginated succeeded: {len(result[0])} docs")
except Exception as e:
print(f"get_docs_paginated failed: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
asyncio.run(main())