tech.inflab.com · 2026. 02. 20.
strace 추적으로 8μs 차이의 동시성 버그 찾기
AI 엔지니어링 브리핑
여러 작업을 동시에 처리할 때 정상적인 디렉터리 생성 결과를 오류로 잘못 판단하는 버그를 strace와 소스 코드 분석으로 찾아 해결한 사례입니다.
문제 & 배경
문제 & 배경: 여러 영상 파일을 동시에 패키징하면 마지막 파일에서 간헐적으로 ‘파일을 열 수 없다’는 오류가 발생했지만, 디스크·메모리·파일 디스크립터 문제는 아니었고 일반 로그만으로는 정확한 원인을 알기 어려웠습니다.
기술 & 해결책
기술 & 해결책: 스레드별 시스템 호출을 시간순으로 보여주는 strace로 확인한 결과 두 스레드가 같은 디렉터리를 동시에 만들었고, 먼저 만든 스레드 뒤의 스레드가 받은 ‘이미 존재함’ 결과를 코드가 실패로 오해해 파일 생성 단계로 진행하지 못하는 문제임을 찾아냈습니다.
교훈 & 주의점
교훈 & 주의점: 동시성 오류를 조사할 때는 strace의 스레드별 로그와 마이크로초 단위 시간을 활용하면 원인을 좁힐 수 있으며, 즉시 대응으로 출력 디렉터리를 미리 만들고 근본적으로는 디렉터리 생성 결과와 오류 상태를 함께 확인해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.