Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그

strace 추적으로 8μs 차이의 동시성 버그 찾기

인프랩 favicon인프랩·Backend·
LinuxShaka PackagerRace ConditionstraceFile System
2026년 02월 19일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

인프랩이 strace를 활용해 shaka-packager의 동시성 버그를 분석하고, 디렉토리 생성 로직의 예외 처리 미스로 인한 레이스를 확인해 원인을 파악했습니다.

구현 방법

  • strace -ff -tt -y 옵션으로 스레드별 시스템콜을 추적하고 출력 파일 경로를 구분해 비교했습니다.
  • LocalFile::Open의 디렉토리 생성 흐름에서 is_directory와 create_directories(ec) 간의 race를 확인했습니다.
  • 해결은 create_directories의 ec 체크 강화와 필요시 출력 디렉토리 선 생성으로 재현성을 확보했습니다.

주요 결과

  • race 원인과 수정 포인트를 명확히 파악했습니다.
  • ec 체크 보강 및 사전 생성으로 다중 입력 환경에서 안정성을 높였습니다.

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
Node.js 컨테이너, 왜 깔끔하게 안 죽을까? (feat. Graceful shutdown) 섬네일
60%

Node.js 컨테이너, 왜 깔끔하게 안 죽을까? (feat. Graceful shutdown)

쏘카 favicon쏘카·2026년 01월 19일
세계 최초로 cert-manager 버그를 발견하고 해결하기 섬네일
60%

세계 최초로 cert-manager 버그를 발견하고 해결하기

데브시스터즈 favicon데브시스터즈·2024년 02월 27일
SwiftLint 캐싱을 통한 Incremental Build 최적화하기 섬네일
59%

SwiftLint 캐싱을 통한 Incremental Build 최적화하기

29CM favicon29CM·2025년 01월 22일