Dama12 commited on
Commit
2839032
·
1 Parent(s): b017d78

fix: resolve InFailedSqlTransaction by adding db.rollback() in background task and adding detailed error logging

Browse files
Files changed (1) hide show
  1. app/services/analysis_service.py +18 -4
app/services/analysis_service.py CHANGED
@@ -59,7 +59,14 @@ class AnalysisService:
59
  try:
60
  # 1. Fetch papers from DB
61
  paper_repo = PaperRepository(db)
62
- db_papers = [paper_repo.get_by_id(pid) for pid in request.paper_ids]
 
 
 
 
 
 
 
63
 
64
  docs = []
65
  for p in db_papers:
@@ -100,7 +107,14 @@ class AnalysisService:
100
  db.commit()
101
 
102
  except Exception as e:
 
103
  from app.core.logging import logger
104
- logger.error(f"Background analysis error for {analysis_id}: {e}")
105
- self.complete_analysis(UUID(analysis_id), status="FAILED")
106
- db.commit()
 
 
 
 
 
 
 
59
  try:
60
  # 1. Fetch papers from DB
61
  paper_repo = PaperRepository(db)
62
+ paper_uuids = []
63
+ for pid in request.paper_ids:
64
+ try:
65
+ paper_uuids.append(UUID(pid) if isinstance(pid, str) else pid)
66
+ except ValueError:
67
+ continue
68
+
69
+ db_papers = [paper_repo.get_by_id(pid) for pid in paper_uuids]
70
 
71
  docs = []
72
  for p in db_papers:
 
107
  db.commit()
108
 
109
  except Exception as e:
110
+ db.rollback() # CLEAN TRANSACTION
111
  from app.core.logging import logger
112
+ import traceback
113
+ logger.error(f"Background analysis error for {analysis_id}: {str(e)}")
114
+ logger.error(traceback.format_exc())
115
+ try:
116
+ self.complete_analysis(UUID(analysis_id), status="FAILED")
117
+ db.commit()
118
+ except Exception as final_err:
119
+ logger.error(f"Failed to even mark analysis as FAILED: {final_err}")
120
+ db.rollback()