-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
Description
문제 설명
WaitingIdempotencyRepository의 findByKey와 saveIdempotencyValue 메서드 사이에 race condition이 존재합니다.
WaitingService.registerWaiting 메서드에서 멱등성 검증과 저장이 분리되어 있어, 동시에 같은 idempotent key로 요청이 들어올 경우 두 요청 모두 멱등키가 존재하지 않음을 확인한 후 처리 로직을 실행하게 되어 중복 처리가 발생할 수 있습니다.
관련 파일
nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/redis/WaitingIdempotencyRepository.javanowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java
참고 링크
- Related issue: [백엔드] 웨이팅 기능 전체 리팩토링 #348
- PR: Refactor : User 웨이팅 등록 및 삭제 기능 리팩토링 #349
- Review comment: Refactor : User 웨이팅 등록 및 삭제 기능 리팩토링 #349 (comment)
- Reported by: @Jjiggu
고려사항
- 원자적 연산 구현 필요 (SETNX, Lua 스크립트, 분산 락 등)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request