gsutil 다운로드 완료 안될 경우
gsutil 다운로드 완료 안될 경우

gsutil 다운로드 완료 안될 경우

Tags
GCP
Cloud
Published
Published February 7, 2022

현상

  • GCP TPU VM에 사전 설치된 gsutil 명령어를 사용할 경우, 99%까지 다운로드가 된 뒤에 .lock 상태로 파일들이 잠겨있고 마무리가 되지않는 경우가 생긴다.

원인

  • gsutil -m cp -r gs://asdfasdf/asdfasdf . 처럼 멀티로 다운받는 경우 아래와 같이 Credential lock 파일과, 해당 파일들의 정보를 트래킹하는 tracker-files 가 생긴다.
    • notion image
  • 이 경우 Multiprocessing을 사용하는 특정 경우에(단일 파일이라도, Multipart로 다운받는 옵션이 켜져있다면 Multiprocessing을 사용한다.) 위와 같은 Lock이 발생하고, 어떠한 버그로 인해 해당 파일에 경합이 발생해 lock 해제가 이뤄지지 않아 Final validation 혹은 파일 병합이 되지 않는다.

해결법

여러 상황에서 동일한 문제가 있었지만, 각각 해결한 방법이 달랐다.
  1. gsutil 명령어의 -m 을 사용하지 않기
    1. 단순히 Multi 다운로드를 끄는 것 만으로도 되는 경우가 있었다.
  1. 위 원인의 캐시를 전체 제거하고 다시 실행하기
    1. 단순히 캐시를 제거하는 것 만으로도, -m 명령어를 동일하게 사용해도 성공하는 경우가 있었다.
  1. pipgsutil 을 재설치하기
    1. gsutil은 pip 로도 패키지 배포를 한다. 아래와 같이 사용자 python 환경에 최신 버전을 설치해주면 해결되는 경우가 있다.
      python3 -m venv venv source venv/bin/activate pip install -U gsutil gsutil -m cp -r ......