diff --git a/services/training/app/ml/data_processor.py b/services/training/app/ml/data_processor.py index 8f4fc7ed..94968418 100644 --- a/services/training/app/ml/data_processor.py +++ b/services/training/app/ml/data_processor.py @@ -142,13 +142,18 @@ class EnhancedBakeryDataProcessor: # Get database session and repositories async with self.database_manager.get_session() as db_session: repos = await self._get_repositories(db_session) - + # Log data preparation start if we have tracking info if job_id and tenant_id: await repos['training_log'].update_log_progress( job_id, 15, f"preparing_data_{inventory_product_id}", "running" ) - + # ✅ FIX: Commit the session to prevent deadlock with parent trainer session + # The trainer has its own session, so we need to commit this update + await db_session.commit() + logger.debug("Committed session after data preparation progress update", + inventory_product_id=inventory_product_id) + # Step 1: Convert and validate sales data sales_clean = await self._process_sales_data(sales_data, inventory_product_id)