3.5.0.beta8-dev에서 3.6.0.beta1로 업그레이드 실패

저는 셀프호스팅 환경에서 최근 코어로 이동된 3개의 플러그인(data-explorer, solved, assign)을 사용 중입니다.

업그레이드 과정은 다음과 같습니다:

  1. containers/app.yml 파일을 편집하여 3개 플러그인(data-explorer, solved, assign)에 대한 줄을 제거했습니다.
  2. cd /var/discourse
  3. sudo ./launcher rebuild app

리빌드는 평소와 같이 5분 정도 걸렸으며 정상적으로 완료된 것으로 보입니다.

그러나 사이트에 접속을 시도하면 응답이 없습니다.

/var/discourse/shared/standalone/log/rails/production.log의 마지막 몇 줄은 다음과 같습니다:

Booted Rails 8.0.3 application in production environment
Running in ruby 3.3.8 (2025-04-09 revision b200bad6cd) [x86_64-linux]
See LICENSE and the LGPL-3.0 for licensing details.
Upgrade to Sidekiq Pro for more features and support: ``https://sidekiq.org
Sidekiq 7.3.9 connecting to Redis with options {:size=>5, :pool_name=>“default”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}
Sidekiq 7.3.9 connecting to Redis with options {:size=>10, :pool_name=>“internal”, :host=>“localhost”, :port=>6379, :db=>1, :url=>nil}

/var/discourse/shared/standalone/log/rails/unicorn.stderr.log의 마지막 몇 줄은 다음과 같습니다:

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:291:in global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in global_subscribe_thread’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread’
unknown OID 23281: failed to recognize type of ‘embeddings’. It will be treated as String.

또한 두 번째로 리빌드를 시도해 보았지만 여전히 작동하지 않습니다.

무슨 일이 일어나고 있는지 알 수 있는 아이디어가 있을까요?

요청이 타임아웃되는 건가요?

서버가 연결을 거부합니다. 제가 시도해 본 두 브라우저 모두에서 연결이 거부되기까지 약 2초가 걸리는 것 같습니다. 그리고 production.log에는 새로운 항목이 표시되지 않습니다.

무슨 일이 일어나고 있는지 아이디어가 있으신가요? 추가 디버깅 단계에 대한 제안이 있으신가요?

두 가지를 확인해 보세요.

  • 서버 프로세스가 실행 중이고 리스닝 상태인지
  • 브라우저가 올바른 서버에 연결을 시도하고 있는지

자신의 PC에서 포럼 URL의 도메인 이름이 서버의 IP 주소로 해석(resolve)되는지 확인하세요. 두 번 확인해 보세요.

아마도 서버에서 다음을 시도해 볼 수 있습니다.

ping -c1 DOMAINNAME
netstat -l | egrep http
lsof -u root | egrep LISTEN

다음 명령어를 시도해 보세요.

docker logs app

최근 도움을 드린 분은 Let’s Encrypt 이메일 주소에 잘못된 값이 들어가 있었습니다. 어떤 이유로든 nginx가 시작되지 않는 것 같습니다. 가장 흔한 원인은 인증서가 손상된 것입니다.