본문 바로가기

어느 날 Docker에서 Mongo를 띄우다 WiredTiger 오류를 겪었다

기술적인 이야기/잡다한 기술적인 이야기 2022. 4. 9.
반응형

개인적으로 개발환경을 Docker 및 Docker Compose로 구축해서 개발 중인 프로젝트가 있었다. 스토리지 많이 차지하고 램도 많이 먹고 느리고 뭐 하여간 맥에서 사용하기엔 여전히 부담스러운 환경이지만 실제와 유사한 테스트를 하기에 이보다 좋은 환경은 없는 것 같다.

이 개발 환경은 잘 쓰고 있었다. 그런데 바로 전 날에도 잘 돌아가던 이 환경에서 어느 날 갑자기 오류가 발생하기 시작했다.

Failed to start up WiredTiger under any compatibility version. This may be due to an unsupported upgrade or downgrade

아마도 -v 옵션으로 로컬에 MongoDB 데이터를 저장하고 이를 연결해서 쓰고 있어서 WiredTiger가 사용되나 보다. 그런데 WiredTiger가 호환되지 않는 버전이라서 시작할 수가 없다는 오류 메시지가 떴다. 업그레이드나 다운그레이드를 잘못한 거 아니냐는 무례한(?) 메시지도 함께 있고 말이다.

참고로 WritedTiger는 MongoDB의 스토리지 엔진 이름이다.

일단 이 문제가 있기 전에 macOS를 12.3으로 업데이트했었는데 과연 관련이 있을까? 가지고 있는 맥이 하나뿐이고 버전을 내릴 방법도 없고 귀찮기도 해서 이 부분은 모르겠고 미궁에 그냥 방치해두기로 했다.

어쨌든 메시지대로라면 MongoDB 자체의 버전 혹은 이미지 버전과 관련이 있는 것 같다. 사용하던 Docker 스펙에서는 그냥 mongo 이미지를 쓰도록 해 놨었는데 단 하루만에 뭔가 바뀔 게 있을까?

MongoDB 이미지 버전(태그)을 찾아보니 5.6 버전까지 나와있는 것 같았다. 그래서 mongo:5 이미지를 사용해 봤는데 동일한 오류가 발생했다. 그렇다면 5.x대 버전은 쓸 수가 없다는 말로 해석이 되었다.

그렇다면 4.x 버전대면 문제가 없지 않을까? 그래서 mongo:4 이미지로 시도해 봤다. 불행히도 동일한 결과가 발생했다.

아 하기 싫다 (giphy)

이상하다. 분명 초기 개발 단계에서는 4.x 버전으로 시작했었는데 4.x 버전도 호환이 안 된다는 것일까? 지금까지 난 도대체 무엇으로 뭘 해온 것일까? 아 짜증 나고 하기 싫다.

반응형

그래서 해결이 안 되나?

사실 해결했다. 내 경우 해답은 4.2.8 버전이었다.

mongo:4.2.8

이 버전을 찾기 위해 수 차례의 노가다가 있기는 했었다만 어쨌든 해결되는 버전을 찾았다는 것이 어디일까.

사실 명확한 원인을 알고 싶은데 이런 문제를 겪는 사람이 그렇게 많지는 않은 것 같다. 거기다 4.2.8이라는 버전도 누군가의 케이스 해결에서 나온 버전을 따라 해 봤더니 맞아떨어진 우연한 경우에 불과할지도 모르겠다. 어쩌면 정말 macOS의 버전 업과 MongoDB의 특정 버전이 충돌하는 것일지도 모른다. 어쨌든 모르겠다.

원인을 모른채로 해결되어 버린 이런 슬픈 삽질은 다시는 하고 싶지 않다. 그래도 도움이 될까 싶어 기록으로 글을 남겨둔다.

728x90
반응형

댓글