From b381278c3e3df27b8b6f495a97f6e759f931efa8 Mon Sep 17 00:00:00 2001 From: Andy Lee Date: Wed, 13 Aug 2025 13:29:52 -0700 Subject: [PATCH] debug: preserve stderr in CI to debug embedding server startup failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previous fix revealed the real issue: embedding server fails to start within 120s, not timeout issues. The error was hidden because both stdout and stderr were redirected to DEVNULL in CI. Changes: - Keep stderr output in CI environment for debugging - Only redirect stdout to DEVNULL to avoid buffer deadlock - This will help us see why embedding server startup is failing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../leann-core/src/leann/embedding_server_manager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/leann-core/src/leann/embedding_server_manager.py b/packages/leann-core/src/leann/embedding_server_manager.py index 1c33cf6..5e05f66 100644 --- a/packages/leann-core/src/leann/embedding_server_manager.py +++ b/packages/leann-core/src/leann/embedding_server_manager.py @@ -304,13 +304,15 @@ class EmbeddingServerManager: project_root = Path(__file__).parent.parent.parent.parent.parent logger.info(f"Command: {' '.join(command)}") - # In CI environment, redirect output to avoid buffer deadlock - # Embedding servers use many print statements that can fill buffers + # In CI environment, redirect stdout to avoid buffer deadlock but keep stderr for debugging + # Embedding servers use many print statements that can fill stdout buffers is_ci = os.environ.get("CI") == "true" if is_ci: stdout_target = subprocess.DEVNULL - stderr_target = subprocess.DEVNULL - logger.info("CI environment detected, redirecting embedding server output to DEVNULL") + stderr_target = None # Keep stderr for error debugging in CI + logger.info( + "CI environment detected, redirecting embedding server stdout to DEVNULL, keeping stderr" + ) else: stdout_target = None # Direct to console for visible logs stderr_target = None # Direct to console for visible logs