fix(music-lab): retry 레이스 가드(retrying 전이) + failed_step 검증 + backoff 빈리스트 가드
- Fix 1: retry_pipeline이 bg.add_task 직전 상태를 'retrying'으로 전이 → 동시 retry 409 방지 - Fix 2: test_retry_failed_pipeline_retriggers에 called[pid/step] assert 추가 - Fix 3: failed_step이 STEPS에 없으면 409 (엉뚱한 prefix 방지) - Fix 4: STEP_RETRY_BACKOFF_SEC 빈 리스트 시 IndexError → 0으로 폴백 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,7 +46,8 @@ async def run_step(pipeline_id: int, step: str, feedback: str = "") -> None:
|
||||
"step %s 실패 (pipeline %s, attempt %d/%d)", step, pipeline_id, i + 1, attempts
|
||||
)
|
||||
if i < attempts - 1:
|
||||
await asyncio.sleep(STEP_RETRY_BACKOFF_SEC[min(i, len(STEP_RETRY_BACKOFF_SEC) - 1)])
|
||||
backoff = STEP_RETRY_BACKOFF_SEC[min(i, len(STEP_RETRY_BACKOFF_SEC) - 1)] if STEP_RETRY_BACKOFF_SEC else 0
|
||||
await asyncio.sleep(backoff)
|
||||
db.update_pipeline_job(job_id, status="failed", error=str(last_err))
|
||||
db.update_pipeline_state(pipeline_id, "failed", failed_reason=f"{step}: {last_err}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user