ES /docs

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.statusCodeerror.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.tshandlingMessageErrors() 메서드에서 cleanUpAnythingRelatedModel() 호출이 존재
  • cpcapture.tsfromMeta() video 로딩 루프에서 srvVideo.capture.id 검증 로직이 존재
  • postprocessor-service.tsrun()에서 stale workspace 감지 및 삭제 로직이 존재
  • upload-new-panos.task.tsinit()에서 API 호출 실패 시 statusCode/body 로깅이 존재

Tests#

  • 기존 테스트: packages/agent-base 및 packages/cupix-capture-postprocessor-agent의 기존 테스트
  • 신규 테스트: 없음 (기존 테스트 통과 확인)