오류 발생

웹사이트를 다시 구축한 후 브라우저에서 아래 메시지가 표시됩니다:

Oops
The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.

Detailed information about the error was logged, and an automatic notification generated. We'll take a look at it.

No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site's feedback category.

이 문제가 발생하기 전에 AI 플러그인 설정 페이지를 클릭했던 기억이 납니다.

containers/app.yml 파일의 경우, 맨 끝에 다음과 같이만 설정했습니다:

params:
  version: esr

지금 여러 번 다시 구축을 시도해 보고 있지만, 새로고침할 때마다 이 오류 메시지가 나옵니다.

혹시 이 문제를 경험해 보신 분 계신가요?

log/production.log 로그 내용:

컨테이너 안에서 sv restart unicorn를 실행했습니다.

Shutting down
Terminating quiet threads for default capsule
Scheduler exiting...
Pausing to allow jobs to finish...
Bye!
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}
Booted Rails 8.0.4 application in production environment
Running in ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [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}
Sidekiq 7.3.9 connecting to Redis with options {size: 10, pool_name: "internal", host: "localhost", port: 6379, db: 1, url: nil}
Started GET "/" for 220.173.137.204 at 2026-03-31 08:28:24 +0000
Processing by ListController#latest as HTML
  Rendered layout layouts/application.html.erb (Duration: 11252.1ms | GC: 410.6ms)
Completed 500 Internal Server Error in 14209ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 560.5ms)

app.yml 파일에서 변경 사항을 삭제하세요.

그리고 ./launcher rebuild app 명령을 실행하세요.

app.yml 파일에 구문 오류가 있을 가능성이 높습니다.

저는 전문가가 아니기 때문에 app.yml 파일에서 무엇을 했는지, 그 설정이 올바른지 정확히 알 수는 없지만, 포럼을 가장 빨리 다시 시작하려면 변경 사항을 삭제하고 rebuild를 실행하는 것이 좋습니다.

답변해 주셔서 감사합니다. 하지만 app.yml 문제인 것 같지는 않습니다. 이 app.yml은 이미 여러 번 성공적으로 빌드했기 때문입니다.

아래 명령어를 실행한 후 홈페이지가 복구되었지만, 로그인 버튼을 클릭하면 다시 Oops 오류가 발생합니다.

redis-cli flushall

sv restart unicorn

sv reload nginx

사이트를 latest에서 esr으로 다운그레이드하셨나요? 그러면 이런 유형의 오류가 발생할 수 있습니다.

아마도 다운그레이드 때문일 것 같습니다. 저는 몇 주 전에 이 서버를 다시 배포했고, 특정 버전의 기능을 테스트 중이었습니다. 현재 최선의 관행은 ESR이라고 생각하는데, 그러다가 이 Oops 오류에 부딪혔습니다.

하지만 이전에는 몇 주 동안 정상적으로 작동하다가 갑자기 오류가 발생했습니다.

이 문제를 어떻게 해결해야 할까요? 최신 버전으로 업그레이드하는 것 외에는 방법이 없을까요?

불행히도 다운그레이드는 지원되지 않습니다. 따라서 ESR을 사용하던 시점의 이전 백업을 복원하거나, 다음 ESR 릴리스(7월)까지 latest를 사용해야 합니다.

데이터와 코드 간의 충돌로 인해 문제가 발생했다는 말씀이신가요? 데이터와 일치하는 코드 버전으로만 되돌려야 한다는 말씀인가요?

네, 정확합니다. 데이터베이스 스키마가 정기적으로 변경됩니다. 따라서 데이터베이스 스키마가 이미 latest로 업데이트되었다면, ESR의 구버전 코드와 호환되지 않습니다.

즉, 새로운 서버를 설치했을 때 기본 표준 설치 버전이 latest라면, 이 상태에서 ESR을 배포하려고 하면 이 문제가 발생할 수 있습니다.

기존 서버의 버전이 3.5.0과 같다면, 이를 ESR로 업그레이드하는 방식이라면 문제가 되지 않는 것이 맞습니까?

아니면 데이터를 전부 삭제한 후 ESR 버전을 배포하는 것도 괜찮을 것 같습니다.

이 방법은 데이터가 중요하지 않거나, 방금 배포해서 아직 데이터가 생성되지 않은 새 서버에 적합합니다. 모든 데이터가 손실되므로 신중하게 진행하세요!!!

구체적인操作步骤를 추가합니다:

# 마운트 디렉터리 삭제
rm -rf /var/discourse/shared/standalone

# 기존 컨테이너 파괴 (이 단계가 필수인지 모르겠습니다)
./launcher destroy app

# app.yml 수정 후 컨테이너 재구성
./launcher rebuild app

네, 맞습니다 :+1: