정산 배치가 계정 잔액을 여러 건 한 트랜잭션 안에서 UPDATE 하는데, 평소엔 멀쩡하다가 트래픽 몰리는 시간대에만 가끔 아래 에러가 납니다.
ERROR: deadlock detected
DETAIL: Process 18442 waits for ShareLock on transaction 99123;
blocked by process 18455.
Process 18455 waits for ShareLock on transaction 99120;
blocked by process 18442.
HINT: See server log for query hints.문제는 로컬에서 아무리 돌려도 재현이 안 된다는 거예요. 배치가 여러 개 동시에 돌 때만 터지는 것 같은데, 각 배치는 잘못된 것도 없어 보이고 각자 커밋도 잘 됩니다. 데드락이면 뭔가 서로 물고 있는 건 알겠는데 어디서부터 봐야 할지 감이 안 잡힙니다.
댓글 0