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

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions