플레이키 테스트가 드러낸 Redis 클라이언트의 use-after-free 버그

A flaky test exposed a Redis client use-after-free

플레이키 테스트가 드러낸 Redis 클라이언트의 use-after-free 버그

Buildkite 엔지니어링 팀이 Redis 클라이언트 라이브러리에서 메모리 손상 버그를 추적한 과정을 다룹니다. 간헐적으로 발생하는 테스트 실패를 조사하던 중, 결국 코어 덤프와 ASAN을 활용해 hiredis C 확장의 use-after-free 버그를 찾아냈습니다. 이 버그는 Redis gem 업그레이드 후 발생했으며, 테스트 환경뿐만 아니라 개발 환경에서도 WebSocket 문제를 일으켰습니다. 팀은 C 확장을 비활성화하고 상위 프로젝트에 버그를 보고했습니다.

메모리 손상 버그는 종종 수개월이 걸릴 수 있는데, 세그폴트로 생성된 코어 덤프는 메모리가 손상되었다는 것만 알려줄 뿐 어떻게 손상되었는지에 대한 단서는 거의 주지 않기 때문입니다.

이 날의 다른 글

2026-07-22