From f4820c80bf98706545aa5b113781caf9b3288c08 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 6 Sep 2023 22:58:12 +0000 Subject: ci: 🏷 Update PyPI version [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- continuedev/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'continuedev') diff --git a/continuedev/pyproject.toml b/continuedev/pyproject.toml index 101c233f..c9c42902 100644 --- a/continuedev/pyproject.toml +++ b/continuedev/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "continuedev" -version = "0.1.3" +version = "0.1.4" description = "" authors = ["Nate Sesti "] readme = "README.md" -- cgit v1.2.3-70-g09d2 From bd38794a02d46b70ee018bdd6cd11e3c207465fc Mon Sep 17 00:00:00 2001 From: sestinj Date: Wed, 6 Sep 2023 19:30:07 -0700 Subject: restart_meilisearch --- continuedev/src/continuedev/core/context.py | 11 +++++++++-- .../src/continuedev/server/meilisearch_server.py | 21 ++++++++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'continuedev') diff --git a/continuedev/src/continuedev/core/context.py b/continuedev/src/continuedev/core/context.py index 47763d8b..e5009a14 100644 --- a/continuedev/src/continuedev/core/context.py +++ b/continuedev/src/continuedev/core/context.py @@ -10,7 +10,7 @@ from ..libs.util.create_async_task import create_async_task from ..libs.util.devdata import dev_data_logger from ..libs.util.logging import logger from ..libs.util.telemetry import posthog_logger -from ..server.meilisearch_server import poll_meilisearch_running +from ..server.meilisearch_server import poll_meilisearch_running, restart_meilisearch from .main import ChatMessage, ContextItem, ContextItemDescription, ContextItemId @@ -269,7 +269,7 @@ class ContextManager: timeout=5, ) - async def load_index(self, workspace_dir: str): + async def load_index(self, workspace_dir: str, should_retry: bool = True): try: async with Client("http://localhost:7700") as search_client: # First, create the index if it doesn't exist @@ -309,6 +309,13 @@ class ContextManager: ) except Exception as e: logger.debug(f"Error loading meilisearch index: {e}") + if should_retry: + await restart_meilisearch() + try: + asyncio.wait_for(await poll_meilisearch_running(), timeout=20) + except asyncio.TimeoutError: + logger.warning("Meilisearch did not restart in less than 20 seconds. Stopping polling.") + await self.load_index(workspace_dir, False) async def select_context_item(self, id: str, query: str): """ diff --git a/continuedev/src/continuedev/server/meilisearch_server.py b/continuedev/src/continuedev/server/meilisearch_server.py index 6aae8cc5..f3734470 100644 --- a/continuedev/src/continuedev/server/meilisearch_server.py +++ b/continuedev/src/continuedev/server/meilisearch_server.py @@ -77,12 +77,13 @@ async def ensure_meilisearch_installed() -> bool: except: pass existing_paths.remove(meilisearchPath) + + await download_meilisearch() # Clear the existing directories for p in existing_paths: shutil.rmtree(p, ignore_errors=True) - await download_meilisearch() return False @@ -155,3 +156,21 @@ def stop_meilisearch(): meilisearch_process.terminate() meilisearch_process.wait() meilisearch_process = None + + +import psutil + +def kill_proc(port): + for proc in psutil.process_iter(): + try: + for conns in proc.connections(kind='inet'): + if conns.laddr.port == port: + proc.send_signal(psutil.signal.SIGTERM) # or SIGKILL + except psutil.AccessDenied: + logger.warning(f"Failed to kill process on port {port}") + + +async def restart_meilisearch(): + stop_meilisearch() + kill_proc(7700) + await start_meilisearch() \ No newline at end of file -- cgit v1.2.3-70-g09d2