BaseTaskContainer::checkTaskFail | Failed - Total: 500, Done: 285, Failed: 10
Fix Plan: BaseTaskContainer::checkTaskFail | Failed - Total: 500, Done: 285, Failed: 10
Changes#
cupixworks: packages/agent-base/src/base-service.ts#
- What:
handlingMessageErrors()메서드(lines 290-313)에cleanUpAnythingRelatedModel()호출 추가. SQS 메시지 삭제 및 에러 상태 업데이트 후, workspace cleanup을 수행하여 stale workspace 잔존을 방지 - Why: 에러 경로에서 workspace cleanup이 누락되어, 실패한 job의
/tmp/workspace/{capture_id}/디렉토리가 후속 job에 영향을 미침 - Lines: 290-313 —
handlingMessageErrors()내부, SQS 메시지 삭제/에러 상태 업데이트 로직 후에 cleanup 호출 추가
cupixworks: packages/cupix-capture-postprocessor-agent/src/model/cpcapture.ts#
- What:
fromMeta()메서드(lines 622-639)의 video 로딩 루프에서, 각videoMeta.srvVideo.capture.id가 현재 capture의this.srvCapture?.id와 일치하는지 검증. 불일치 시 warn 로그 출력 + 현재 capture의 ID로 override - Why:
CPVideo.fromMeta()가 EFS 메타데이터에 임베딩된 이전 capture의srvVideo.capture.id를 검증 없이 역직렬화하여, 잘못된 capture_id가createPanoRequest에 전파됨 - Lines: 622-639 — video 로딩 루프 내부,
cpVideo.fromMeta(videoMeta)호출 후에 검증 로직 추가
cupixworks: packages/cupix-capture-postprocessor-agent/src/postprocessor-service.ts#
- What:
run()메서드(lines 80-83)에서setModelWorkspace()호출 전에,/tmp/workspace/하위에 현재 capture_id가 아닌 다른 디렉토리가 존재하면 warn 로그 출력 + 삭제하는 방어적 stale workspace 감지 로직 추가 - Why: cleanup 누락이나 컨테이너 재사용에 의해 남아있는 stale workspace가 후속 job에 영향을 미치는 것을 원천 차단
- Lines: 80-83 —
this._modelInProcess = cpCapture이후,setModelWorkspace()이전
cupixworks: packages/cupix-capture-postprocessor-agent/src/manager/transfer/upload-new-panos.task.ts#
- What:
init()메서드(lines 23-45)에서cupixApi.pano.create()호출 실패 시error.statusCode와error.body(또는error.message)를 명시적으로 error 레벨로 로그하는 try-catch 추가 - Why: 현재는 HTTP 403 등의 API 에러가 발생해도
init()에서 별도 로깅 없이 throw되어,url: undefined로그만으로는 실제 원인(403, capture 권한 부재 등)을 파악하기 어려움 - Lines: 36-37 —
cupixApi.pano.create()호출 주변에 try-catch 래핑
Acceptance Criteria#
-
base-service.ts의handlingMessageErrors()메서드에서cleanUpAnythingRelatedModel()호출이 존재 -
cpcapture.ts의fromMeta()video 로딩 루프에서srvVideo.capture.id검증 로직이 존재 -
postprocessor-service.ts의run()에서 stale workspace 감지 및 삭제 로직이 존재 -
upload-new-panos.task.ts의init()에서 API 호출 실패 시 statusCode/body 로깅이 존재
Tests#
- 기존 테스트: packages/agent-base 및 packages/cupix-capture-postprocessor-agent의 기존 테스트
- 신규 테스트: 없음 (기존 테스트 통과 확인)