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())