Skip to content

웨이팅 등록 멱등성 처리의 race condition 해결 #350

Description

@coderabbitai

문제 설명

WaitingIdempotencyRepositoryfindByKeysaveIdempotencyValue 메서드 사이에 race condition이 존재합니다.

WaitingService.registerWaiting 메서드에서 멱등성 검증과 저장이 분리되어 있어, 동시에 같은 idempotent key로 요청이 들어올 경우 두 요청 모두 멱등키가 존재하지 않음을 확인한 후 처리 로직을 실행하게 되어 중복 처리가 발생할 수 있습니다.

관련 파일

  • nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/redis/WaitingIdempotencyRepository.java
  • nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java

참고 링크

고려사항

  • 원자적 연산 구현 필요 (SETNX, Lua 스크립트, 분산 락 등)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions