Skip to content

[FIX] Finance MBTI 테스트 데드락 및 커넥션 풀 고갈 문제 해결 #113

@seamooll

Description

@seamooll

Description

  • 문제1: /api/finance-mbti/test 호출 시 Lock wait timeout (500) 에러 발생
  • membercodef_connection 테이블에 대해 두 트랜잭션이 서로 다른 순서로 락을 획득하면서 교착 상태가 발생하였고, 이를 해결하기 위해 락 획득 순서를 member → codef_connection으로 통일하고, 외부 CODEF API 호출을 트랜잭션 밖으로 분리합니다.
  • 문제2: 운영 서버에서 모든 API 요청이 30초 타임아웃 후 실패하는 현상 발생 (Could not open JPA EntityManager for transaction)
  • @Transactional 메서드 내 외부 API 호출로 인한 커넥션 장기 점유로 인해 발생하였습니다. 이를 트랜잭션 범위를 조정하여 해결합니다.

Tasks

  • codef_connection 삭제 로직에서 member를 먼저 조회하도록 순서 통일
  • ledger_entry 저장 로직에서도 동일한 순서(member → ...) 유지
  • CODEF API 호출 로직 트랜잭션 범위 조정
  • Gemini API 호출 로직 트랜잭션 범위 조정

Reference

  • 데드락 관련 프론트 에러 로그
Image

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions