transaction deadlock

    jest 테스트 도중 만난 트랜잭션 데드락

    jest 테스트 도중 만난 트랜잭션 데드락

    테스트 코드를 돌리던 중 데드락을 발견했다. 데드락 해결하기 결론적으로 큰 문제는 아니었다. jest 자체가 worker를 이용해서 테스트 코드를 병렬적으로 실행하기 때문에 unique key가 걸린 user 테이블에 레코드 락이 걸려서 데드락이 발생하는 것이었다. jest-config.json파일의 maxWorkers를 조정하여 병렬적으로 테스트 하지 않도록 일단 수정해놓았다. { "preset": "ts-jest", "testEnvironment": "node", "moduleFileExtensions": ["ts", "js"], "transform": { "^.+\\.(ts)$": ["ts-jest", { "babel": true, "tsconfig": "tsconfig.json" }] }, "te..