/admin/upgrade에서 업그레이드하는 데 *아주* 오래 걸립니다

단일 플러그인을 admin/upgrade에서 업그레이드하는 데 매우 오랜 시간이 걸립니다.

보통 전체 재빌드(rebuild)는 약 7분이 걸립니다.

[date=2023-03-02 time=21:07:00 timezone=“Europe/Amsterdam”]부터 업그레이드가 진행 중이며, 현재 상태는 다음과 같습니다:

HTOP 출력:

수정: 2023-03-02T20:44:00Z - 여전히 같은 로그 줄에 머물러 있습니다. CPU 사용률도 동일합니다. 이 시점에 CLI 재빌드를 시작했습니다.

수정2: 제 머신에서 재빌드에 걸리는 정확한 시간을 참고하기 위해, 재빌드 완료 타임스탬프: 2023-03-02T20:51:00Z

4개의 좋아요

네, 최소 어제부터 저도 같은 문제를 겪고 있습니다.

지금은 업그레이드 화면에서 합리적인 시간 내에 업그레이드를 완료하는 것이 사실상 불가능해서, 커맨드라인으로 업그레이드할 수밖에 없습니다.

CLI 재구축이 완료되었습니다.

관리자 업그레이드는 여전히 멈춰 있고, 플러그인이 업그레이드되지 않은 것으로 보입니다.

RESET UPGRADE를 클릭하고 다시 CLI 재구축을 시작했습니다.

1개의 좋아요

나도 똑같아요. 플러그인을 업데이트할 때 정말 짜증나는데, 시간이 진짜로 오래 걸려서 매우 불편합니다.

2개의 좋아요

이 문제에 대한 우회 방법이 있을까요? Discourse Chatbot :robot: (Supports ChatGPT) - plugin - Discourse Meta의 변경 사항을 따라가기 위해 업그레이드를 할 때마다 너무 오래 걸립니다.

여전히 문제가 발생하고 있습니다.

다만, 낮은 사양의 서버에만 영향을 미치는 것 같습니다?

1개의 좋아요

답변보다는 추가 의견 정도로 말씀드립니다… :slight_smile:

저는 플러그인이 많이 설치된 1GB 용량의 DigitalOcean 테스트 사이트를 운영하고 있어서 평소에도 속도감이 가장 빠른 편은 아닙니다. 하지만 최근에는 이전보다 훨씬 더 오래 걸리는 것 같고, 며칠 전에는 @MarcP 님과 같은 방식으로 이상한 현상에 걸려서 리셋을 해야 했습니다.

이전까지는 시간을 재본 적이 없지만, 오늘 '모두 업데이트’를 설정하고 버튼을 클릭한 시각을 기록해 두었습니다. 오전 9시 30분에 시작했는데, 아직 오전 10시 15분까지 진행 중입니다. 현재 일부 자산을 번들링하고 있습니다. 평소에는 45분 이상 걸리지 않는다는 점은 꽤 자신 있게 말씀드릴 수 있습니다.

다만 임시 파일을 삭제하는 과정에서 권한 관련 문제가 있었던 것처럼 보이는데, 이것이 관련이 있는지 확실하지는 않습니다.

4개의 좋아요

@david와 저는 근본 원인을 찾았습니다. (과거 @Falco가 발견한 것과 유사합니다)

업그레이드 중에 메모리 사용을 제한하기 위해 특별한 Ruby 플래그를 사용했는데, Ruby 3.2에서는 더 이상 작동하지 않습니다.

이 문제를 수정하는 PR을 곧 올릴 예정입니다.

7개의 좋아요
7개의 좋아요

참고… 수정 사항이 적용되려면 계란과 닭의 문제와 같은 상황이 발생합니다. 업그레이드를 실행할 때 여전히 구버전 코드가 로드되기 때문입니다.

처음에는 ./launcher rebuild 명령이 필요할 수 있으며, 이후에는 웹 업그레이더가 정상적으로 작동할 것입니다.

이를 피하는 쉬운 방법은 없습니다. @cvx, 어려운 문제입니다… 기술적으로는 업그레이드 시 DockerManager::Upgrader.new(user_id, repo, repo_version).upgrade가 쉼을 호출하여 새 업그레이더 코드를 실행하도록 해야 하지만, 이는 꼬인 뱀처럼 복잡한 문제입니다.

빠른 우회 방법

  1. docker manager 업그레이드를 시작합니다.
  2. 멈추는 지점에서 취소합니다.
  3. 셸에서 ./launcher restart app을 실행합니다.
  4. 이제 웹에서 업그레이드가 정상 작동합니다.

쉬운 우회 방법

  1. ./launcher rebuild app을 실행합니다.

이후에는 모든 것이 정상입니다.

수정

이것이 이 주제에 대한 마지막 게시물이 되도록 하기 위해 선제적으로 이 이슈를 닫습니다. 이렇게 하면 우회 방법을 찾기 쉬워집니다. 재빌드 후에도 여전히 문제가 발생하면 다시 열 수 있도록 플래그를 남깁니다.

8개의 좋아요