저는 플러그인이 많이 설치된 1GB 용량의 DigitalOcean 테스트 사이트를 운영하고 있어서 평소에도 속도감이 가장 빠른 편은 아닙니다. 하지만 최근에는 이전보다 훨씬 더 오래 걸리는 것 같고, 며칠 전에는 @MarcP 님과 같은 방식으로 이상한 현상에 걸려서 리셋을 해야 했습니다.
이전까지는 시간을 재본 적이 없지만, 오늘 '모두 업데이트’를 설정하고 버튼을 클릭한 시각을 기록해 두었습니다. 오전 9시 30분에 시작했는데, 아직 오전 10시 15분까지 진행 중입니다. 현재 일부 자산을 번들링하고 있습니다. 평소에는 45분 이상 걸리지 않는다는 점은 꽤 자신 있게 말씀드릴 수 있습니다.
다만 임시 파일을 삭제하는 과정에서 권한 관련 문제가 있었던 것처럼 보이는데, 이것이 관련이 있는지 확실하지는 않습니다.
참고… 수정 사항이 적용되려면 계란과 닭의 문제와 같은 상황이 발생합니다. 업그레이드를 실행할 때 여전히 구버전 코드가 로드되기 때문입니다.
처음에는 ./launcher rebuild 명령이 필요할 수 있으며, 이후에는 웹 업그레이더가 정상적으로 작동할 것입니다.
이를 피하는 쉬운 방법은 없습니다. @cvx, 어려운 문제입니다… 기술적으로는 업그레이드 시 DockerManager::Upgrader.new(user_id, repo, repo_version).upgrade가 쉼을 호출하여 새 업그레이더 코드를 실행하도록 해야 하지만, 이는 꼬인 뱀처럼 복잡한 문제입니다.
빠른 우회 방법
docker manager 업그레이드를 시작합니다.
멈추는 지점에서 취소합니다.
셸에서 ./launcher restart app을 실행합니다.
이제 웹에서 업그레이드가 정상 작동합니다.
쉬운 우회 방법
./launcher rebuild app을 실행합니다.
이후에는 모든 것이 정상입니다.
수정
이것이 이 주제에 대한 마지막 게시물이 되도록 하기 위해 선제적으로 이 이슈를 닫습니다. 이렇게 하면 우회 방법을 찾기 쉬워집니다. 재빌드 후에도 여전히 문제가 발생하면 다시 열 수 있도록 플래그를 남깁니다.