TECH 으로 돌아가기
TECH HACKER NEWS 오늘 2분 읽기 28 READS

가끔 깨지는 테스트가 잡아낸 Redis 클라이언트의 치명적 버그

"어쩌다 한 번 실패하는" 테스트는 보통 재실행으로 넘겨버린다. 하지만 이 플래키 테스트는 진짜 버그의 신호였다. Buildkite 팀이 집요하게 원인을 추적한 끝에 도달한 곳은 Redis 클라이언트의 use-after-free. 커넥션 풀에서 이미 반환·해제된 연결 객체를 다른 요청이 계속 붙들고 사용하면서, 한 명령의 응답이 엉뚱한 요청으로 새어 나가는 문제였다. 비동기 작업의 취소·재사용 타이밍이 겹치는 아주 좁은 경합 구간에서만 터지기 때문에 재현이 극도로 어려웠고, 그래서 '가끔' 실패했던 것이다. 핵심 교훈은 분명하다. 플래키 테스트를 단순 노이즈로 치부하지 말 것. 그 낮은 확률의 실패는 프로덕션에서 데이터 오염이나 크래시로 나타날 수 있는 실제 동시성·수명(lifetime) 버그를 미리 보여주는 조기 경보일 수 있다. 커넥션 풀과 객체 수명 관리는 언제나 의심하며 볼 것.

SOURCE · HACKER NEWS
원문 전체 보기 → https://buildkite.engineering/how-a-flaky-test-exposed-a-red...
SHARE
처리 중...