Bazel 캐싱, 원격 실행, glibc 버전 불일치로 인한 프로덕션 환경 크래시
2025-09-21

이 글에서는 Bazel 캐싱, 원격 실행, 그리고 서로 다른 환경에서의 glibc 버전 불일치가 상호 작용하여 프로덕션 환경에서 크래시가 발생한 사례를 설명합니다. 개발자는 로컬에서 변경 사항을 빌드하고 테스트하며, CI는 캐시를 활용하여 릴리스 빌드를 생성하지만, 프로덕션 환경 배포는 'GLIBC_2.28' 버전이 없어서 실패합니다. 이 글에서는 glibc 버전 불일치가 어떻게 빌드 재현성을 해치는지 분석하고, 몇 가지 해결책을 제시합니다. 간단한 해결 방법으로는 로컬 및 원격 glibc 버전을 가져와 C++ 툴체인에 더 높은 버전을 사용하는 방법이 있습니다. 더욱 강력한 해결책으로는 액션 캐시에 대한 쓰기를 제한하고, 빌드를 원격 실행기에서 강제로 실행하는 방법이 있습니다. 최종적인 해결책은 sysroots를 사용하여 모든 환경에 여러 glibc 버전을 설치하고, 사용할 버전을 명시적으로 지정하는 것입니다. 이 글에서는 재현 가능한 빌드의 중요성을 강조하고, 상황에 맞는 적절한 해결책을 선택할 것을 권장합니다.
개발