업데이트/재빌드 오류. 진단 및 복구 방법은?

방금 업데이트를 시도했는데, 마지막 부분에 실패가 발생했습니다:

I, [2024-07-04T07:17:18.714988 #807]  INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake aborted!
Zlib::BufError: buffer error (Zlib::BufError)

...
< more stuff >
...

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 805 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

같은 오류 메시지가 여기에서 보고된 것을 확인했습니다: "Zlib::BufError: buffer error" - Discourse update fails

하지만 이미 yaml 파일에 maxmind 계정 ID가 입력되어 있습니다.

컨테이너에 진입해서 이 명령어를 다시 실행해 볼 수는 있겠지만, 일반적으로 실패한 재빌드(rebuild)에서 복구하는 방법이 있는지, 아니면 보통 전체 과정을 처음부터 다시 실행하는지 궁금합니다.

어제 결국 포기하고 maxmind 주석을 처리했습니다. 그런 다음 컨테이너에 들어가서 discourse.conf에 값을 추가했는데, 이렇게 하면 데이터베이스를 성공적으로 가져올 수 있었습니다(좀 복잡한 우회 방법이었죠).

이런 일이 왜 일어나는지는 이해가 되지 않지만, 버그인 것 같습니다.

지금은 maxmind 없이 진행하는 것이 유일한 해결책인 것 같습니다.

오늘 이 문제를 겪었는데, 딱 한 번만 발생했어요. 다시 rebuild 명령을 내렸더니 정상적으로 잘 되더군요. 재현할 수 있는 일관된 방법이 없어서 정말 이상합니다. 비슷한 설정을 가진 다른 컨테이너들은 문제없이 빌드되었거든요.

오늘 3개 사이트를 다시 구축했는데, 모두 위에서 언급한 것과 동일한 시점에 문제가 발생했습니다. 테마 컴포넌트를 업데이트한 직후였던 것 같습니다.

매번 아무것도 변경하지 않고 2차 재구축을 돌리면 정상적으로 작동했습니다. Maxmind가 단순한 오인(red herring)이거나, 혹은 별개의 문제일 수도 있다고 생각합니다.

저는 2개 컨테이너 구성을 사용하므로 재구축이 실패해도 큰 문제는 아닙니다.

저도 같은 경험을 했습니다. 첫 실행 시 실패하는 것 같습니다. 다행히 2개 컨테이너 구성으로 전환해서, 재구성을 두 번 실행하는 동안에도 사이트가 계속 운영되고 있습니다.

버그를 보고하는 것이 무례한 일인지는 모르겠지만, 오리처럼 생기고 오리처럼 행동한다면… :wink:

maxmind로 재구축할 때 문제가 발생하는 것을 확인했습니다.
동일한 플러그인을 설치한 여러 포럼에서 모두 동일한 문제가 발생하고 있으며, 해당 플러그인들은 모두 공식 플러그인입니다.

명령줄에서: maxmind로 재구축 시 실패합니다. maxmind 주석 처리 후 재구축하면 정상적으로 작동합니다.

/admin에서 Discourse 업데이트 시: app.yml에 변경 사항이 없으며, 아무 문제 없이 정상적으로 업데이트됩니다.