Add granular import logging and increase timeout to 120s

This commit is contained in:
Jamie Pine
2026-01-25 22:25:27 -08:00
parent d943e1d6d4
commit 090b1f6dde
2 changed files with 10 additions and 4 deletions
+7 -2
View File
@@ -25,14 +25,19 @@ logger.info(f"Arguments: {sys.argv}")
logger.info("=" * 60)
try:
logger.info("Importing argparse...")
import argparse
logger.info("Importing uvicorn...")
import uvicorn
logger.info("Standard library imports successful")
# Import the FastAPI app from the backend package
logger.info("Importing backend modules...")
logger.info("Importing backend.config...")
from backend import config
logger.info("Importing backend.database...")
from backend import database
logger.info("Importing backend.main (this may take a while due to torch/transformers)...")
from backend.main import app
from backend import config, database
logger.info("Backend imports successful")
except Exception as e:
logger.error(f"Failed to import required modules: {e}", exc_info=True)
+3 -2
View File
@@ -79,13 +79,14 @@ async fn start_server(
*state.child.lock().unwrap() = Some(child);
// Wait for server to be ready by listening for startup log
let timeout = tokio::time::Duration::from_secs(30);
// PyInstaller bundles can be slow on first import, especially torch/transformers
let timeout = tokio::time::Duration::from_secs(120);
let start_time = tokio::time::Instant::now();
let mut error_output = Vec::new();
loop {
if start_time.elapsed() > timeout {
eprintln!("Server startup timeout after 30 seconds");
eprintln!("Server startup timeout after 120 seconds");
if !error_output.is_empty() {
eprintln!("Collected error output:");
for line in &error_output {