요약 : 도커싱크 오류 메세지 중 Error starting sync, exit code 0, message Warning: Archive format mismatch: found ” but expected 의 발생시 해결방법에 대한 포스팅입니다.
출근하자마자 자동빌드 설정이 되어 있는 내 노트북의 docker-sync 컨테이너에 접속해서 로그를 확인 해보니 아래와 같은 오류메세지가 발생하였다.
error Error starting sync, exit code 0
message Warning: Archive format mismatch: found
''
but expected
'Unison archive format 22'.
I will delete the old archive and start from scratch.
Warning: Archive format mismatch: found
''
but expected
'Unison archive format 22'.
I will delete the old archive and start from scratch.
message Unison 2.51.2 (ocaml 4.08.1): Contacting server...
Connected [//2e3064f3fb2f//sync_folder -> //blabla/blabla]
Looking for changes
Fatal error: Internal error: On-disk archives are not identical.
This can happen when both machines have the same hostname.
It can also happen when one copy of Unison has been compiled with
OCaml version 3 and one with OCaml version 4.
컨테이너는 올라와 있었지만 파일 싱크가 되고 있지 않은 상태.
로그의 내용은 유니슨 아카이브의 포멧이 기대하는 형태와 다르고(불일치) 기존 아카이브를 삭제하고 다시 생성을 시도했으나 디스크 아카이브가 일치하지 않는 치명적인 에러가 발생했다는 내용이다.
이런 증상은 파일을 싱크하는 두 머신이 같은 호스트네임인 경우 또는 한쪽이 Ocaml버전 3로 컴파일 되고 다른쪽이 Ocaml버전 4로 컴파일 된 경우 발생할 수 있다고 알려주는데 내 경우는 둘 다 해당이 되지 않았다.
몇번 재시작을 시도해봐도 해결이 되지 않아 다음과 같이 해결하였다.
.unison 아카이브 폴더 삭제
WSL안에서 rm -rf .unison
unison.log파일 삭제
rm unison.log
로그파일은 그냥 정리 차원에서 삭제한 것이며 .unison폴더만 삭제해줘도 충분하다.
이후 .unison폴더에 대해 궁금해서 자료를 좀 더 찾아보았고 다음 주소에서 정보를 얻을 수 있었다.
two replicas of a collection of files and directories to be stored on
different hosts (or different disks on the same host), modified
separately, and then brought up to date by propagating the changes in
each replica to the other.
.unison폴더에는 각 동기화 루트 폴더 쌍에 대해서 별도 아카이브 셋을 유지관리한다고 함.
.unison폴더의 위치는 OS별로 다르며 아래를 참조
linux : $HOME/.unison
Windows : %USERPROFILE%.unison (예 : C:\Users\devhinekr\.unison)
2 thoughts on “Error starting sync, exit code 0, message Warning: Archive format”