이상한 Node 이미지 패치: JAR 파일 순서의 미스터리

2025-04-09

Node 이미지 패치 업데이트로 인해 프로덕션 JVM 애플리케이션이 장시간 다운되었습니다. 근본 원인은 JVM 클래스패스에서 와일드카드 `/jars/*`를 사용했기 때문입니다. 패치 업데이트 후 ext4 파일 시스템의 디렉토리 해시 시드가 변경되어 JAR 파일 로드 순서가 바뀌었습니다. 이로 인해 특정 버전의 Bouncy Castle 라이브러리에 의존하는 클라이언트 라이브러리가 제대로 초기화되지 못하고 `NoSuchFieldError`가 발생했습니다. 저자는 buildah의 레이어 압축 및 OverlayFS 레이어 순서 문제를 배제하고 조사했습니다. 최종적으로 문제는 ext4 파일 시스템의 디렉토리 해시 시드 변경으로 밝혀졌습니다. ext4 디스크 이미지 파일의 해시 시드를 수정하여 이를 확인했습니다. 이 사건은 사소해 보이는 시스템 세부 정보가 심각한 결과를 초래할 수 있음을 보여주며, 기반 시스템의 복잡성을 깊이 이해하는 것이 중요함을 강조합니다.

개발