이상한 버그와 재빌드 후 500 오류로 막힘

현재 제 사이트가 다운되어 있습니다. 원인은 모르겠지만, 무슨 일이 있었는지와 무엇을 시도해 보았는지 최대한 재현해 보겠습니다.


한 달째 제 사이트를 방문하지 않았지만, 사용자나 관리자로부터 아무런 문제가 없다는 불만을 듣지 못했습니다. 오늘 사이트를 방문하여 새 탭에서 몇 가지 페이지를 열었고, 관리자 대시보드로 이동했습니다.

관리자 대시보드에서 3개의 테마 구성 요소가 최신 버전이 아니라는 것을 확인했습니다. 그중 하나는 discotoc였고, 나머지 두 개는 기억이 나지 않습니다. UI를 사용하여 그것들을 업데이트했습니다. 또한 체크리스트 플러그인을 제거하라는 권장 사항도 보였지만, 제 플러그인 목록에 그것이 있었다고는 90% 확신하지 않습니다.

카테고리 페이지 중 하나를 방문했는데, 버그가 심해 보였습니다. 처음에는 브라우저에서 페이지가 응답하지 않는다는 오류를 받았습니다. 다시 방문하니 빈 카테고리 목록이 표시되었고, 또 다시 방문하니 카테고리 페이지 UI 상단이 약 100번 반복되어 표시되었습니다.

  • 이것이 테마 구성 요소 업데이트와 관련이 있을까요???

어쨌든, 이상하다고 생각했고 대시보드에서 업데이트를 해야 한다고 해서 명령줄로 들어가서 ./launcher rebuild app을 실행했습니다. 실행이 실패했는지 성공했는지는 기억이 나지 않습니다. 실행이 끝난 후 사이트가 로딩되지 않고 위의 500 오류가 표시됩니다.

다양한 것들을 시도해 보았지만 아무것도 해결되지 않습니다.

  • 명령줄을 통해 앱에 진입하여 백업을 만들 수 있었고, 백업 버킷에도 업로드되었습니다.
  • discourse doctor 실행은 작동합니다. 테스트 이메일이 성공적으로 전송되었고, 웹사이트 URL에서 제공되는 출력 .txt 파일을 브라우저에서 성공적으로 볼 수 있었습니다. (지금 다시 재빌드를 실행해서 그런지 지금은 다운된 것 같습니다.)
    • 사이트와 로컬호스트 모두에서 Discourse 버전이 NOT FOUND(찾을 수 없음)라고 표시되었습니다.
  • 드롭렛 내부의 명령줄에서 사이트를 핑하면 정상적으로 작동합니다.
  • DO 드롭렛 재시동을 시도했습니다.
  • 모든 플러그인을 주석 처리하고 재빌드하는 것을 시도했습니다.
  • git pull을 실행해 보았는데, 이미 최신 상태라고 했습니다.
  • 정적 자산 CDN 캐시를 지우는 것을 시도했습니다.
  • 과거에 확실히 작동했던 v3.2.0.beta1로 Discourse 버전을 설정하는 것을 시도했습니다.
  • /safe-mode와 /?safe_mode=no_themes,no_plugins를 방문해 보았지만, 동일한 500 오류가 발생합니다.

여러 가지 오류를 확인했는데, 치명적인 것도 있고 아닌 것도 있습니다. 하지만 아직 아무것도 파악하지 못한 것 같습니다.

이것은 우회 조치를 취했습니다. 무엇을 했는지 기억이 나지 않습니다. 플러그인을 비활성화한 걸까요?

1 gem installed
gem install prizm -v 0.0.3 -i /var/www/discourse/plugins/discourse-topic-previews-sidecar/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Successfully installed prizm-0.0.3
1 gem installed
 
I, [2024-01-06T03:44:20.128194 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Plugin name is 'discourse-topic-voting', but plugin directory is named 'discourse-voting'
^Cnode:events:492
      throw er; // Unhandled 'error' event
      ^
 
Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:160:15)
    at writeGeneric (node:internal/stream_base_commons:151:3)
    at Socket._writeGeneric (node:net:931:11)
    at Socket._write (node:net:943:8)
    at writeOrBuffer (node:internal/streams/writable:392:12)
    at _write (node:internal/streams/writable:333:10)
    at Writable.write (node:internal/streams/writable:337:10)
    at DestroyableTransform.ondata (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_readable.js:629:20)
    at DestroyableTransform.emit (node:events:514:28)
    at addChunk (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_readable.js:279:12)
    at readableAddChunk (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_readable.js:262:11)
    at Readable.push (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_readable.js:228:10)
    at Transform.push (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_transform.js:132:32)
    at DestroyableTransform.afterTransform (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_transform.js:85:10)
    at DestroyableTransform._transform (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/index.js:46:7)
    at Transform._read (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_transform.js:166:10)
    at Transform._write (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_transform.js:155:83)
    at doWrite (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_writable.js:390:139)
    at writeOrBuffer (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_writable.js:381:5)
    at Writable.write (/var/www/discourse/app/assets/javascripts/node_modules/readable-stream/lib/_stream_writable.js:302:11)
    at UI.write (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/index.js:73:25)
    at UI.writeLine (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/index.js:85:10)
    at UI.writeInfoLine (/var/www/discourse/app/assets/javascripts/node_modules/console-ui/lib/index.js:111:10)
    at Class._handleProgress (/var/www/discourse/app/assets/javascripts/ember-cli-progress-ci/index.js:45:23)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)
    at runNextTicks (node:internal/process/task_queues:64:3)
    at process.processTimers (node:internal/timers:509:9) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}
 
Node.js v18.17.1
error Command failed with exit code 1.
I, [2024-01-06T03:45:42.152091 #1]  INFO -- : Terminating async processes
I, [2024-01-06T03:45:42.152209 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
I, [2024-01-06T03:45:42.152250 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 110
110:signal-handler (1704512742) Received SIGTERM scheduling shutdown...
2024-01-06 03:45:42.152 UTC [41] LOG:  received fast shutdown request
2024-01-06 03:45:42.179 UTC [41] LOG:  aborting any active transactions
2024-01-06 03:45:42.181 UTC [41] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2024-01-06 03:45:42.183 UTC [45] LOG:  shutting down
2024-01-06 03:45:42.222 UTC [41] LOG:  database system is shut down
110:M 06 Jan 2024 03:45:42.240 # User requested shutdown...
110:M 06 Jan 2024 03:45:42.240 * Saving the final RDB snapshot before exiting.
110:M 06 Jan 2024 03:45:45.463 * DB saved on disk
110:M 06 Jan 2024 03:45:45.463 # Redis is now ready to exit, bye bye...
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:122:in `readlines': Interrupt
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:122:in `block in spawn'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:115:in `popen'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:115:in `spawn'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:88:in `block in run'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:86:in `each'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:86:in `block in run_commands'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:227:in `block (2 levels) in run_commands'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:211:in `each'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:211:in `block in run_commands'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:210:in `each'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:210:in `run_commands'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:191:in `run'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/cli.rb:89:in `run'
        from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
        from /usr/local/bin/pups:25:in `load'
        from /usr/local/bin/pups:25:in `<main>'
sha256:da4950febbafda88432e357e0bd7cc8e0ba528b750569e60cce2a05dcdbed2a8
18c1a3ab556d2c4ddca2cf35a934fba94d748e48c1e09907ca16e17b91b64564
Removing old container
+ /usr/bin/docker rm app
app

아래의 오류는 유니콘(unicorn) 로그에서 발견되었는데, 이것이 치명적인 오류인지 모르겠습니다. (텍스트 일부의 스크린샷만 가지고 있습니다.)

app error: Missing 'secret_key_base' for 'production' environment, set this stri....

그리고 백업을 만들려고 앱에 진입했을 때 또 다른 이상한 일이 발생했습니다. 그러자 두 번째 사람이 앱에 진입했고, 그 후 discourse 이미지가 다운로드되기 시작했습니다. 이 두 사건 사이에 변경 사항이나 재시동이 없었지만, 우리는 두 대의 다른 컴퓨터에서 접속하고 있었습니다.

./launcher enter app
WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient
...

무엇을 해야 할지 아이디어가 고갈되고 있습니다.

  • 관리자 패널에 접속할 수 없기 때문에 테마 구성 요소를 비활성화하는 방법에 대해 어떻게 해야 할지 모르겠습니다.
  • 아마도 드롭렛을 초기화하고 최신 또는 두 번째로 최신 백업에서 복원할 수 있을 것 같습니다.
  • 그 외에는 무엇을 할지 모르겠습니다.

500은 백엔드 오류이므로 테마 컴포넌트 때문일 가능성은 낮습니다.

비공식 플러그인을 전혀 사용하지 않고 다시 빌드하여 정상 작동하는지 확인한 후, 추가 플러그인을 하나씩 다시 추가하고 매번 빌드하여 문제를 특정해 보시길 권장합니다.

플러그인은 비공식 포크가 아닌 원래 소스를 사용하고 있는지 확인하세요.

업데이트 중 오류가 발생했습니다

api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

수정하는 데 도움을 주십시오.

이것은 매우 의심스럽습니다. 어떤 종류의 설치인가요? 표준 설치 절차를 따랐나요?

현재 수많은 코드가 의존하고 있는 Ruby 버전은 3.2.2입니다.

공식 discourse 저장소의 tests-passed 브랜치를 사용 중인가요?

여기서 사용자의 설치 환경에 심각한 문제가 있는 것 같습니다.

이 드롭릿은 2년 동안 실행되어 왔으며, 표준 설치 지침을 따랐던 것 같습니다. 모든 문제가 발생하기 직전까지 최신 릴리스의 바로 이전 버전(2nd latest release)으로 실행 중이었습니다. 이전에 app.yml에서 버전을 수정한 적이 없으므로, tests-passed 분기로 기본 설정되었어야 합니다.

현재는 새로운 드롭릿을 설정하고那里的 백업을 복원하고 있습니다. 하지만 아무것도 표시되지 않아 어려움을 겪고 있습니다. 정적 자산에 대한 CDN 설정이나 URL 대신 IP 주소를 사용하려는 시도 때문일 수도 있습니다.

새로운 드롭릿에서 복원을 시도해 볼 것입니다. 하지만 호스트명을 즉시 새로운 IP 주소로 지시하지 않고 이를 수행하는 방법에 대해 조언이 있을까요? 이상적으로는, 새로운 Discourse 인스턴스가 처음 로드될 때 누구나 새로운 관리자 생성 페이지에 접근할 수 없도록 사이트 설정/복원을 완료하고 싶습니다. 하지만 app.yml에서 호스트명을 IP로 설정하는 등의 시도를 하면 제대로 동작하지 않습니다. (이전에 이렇게 해서 잘 작동했던 것 같지만, 지침에서는 이렇게 할 수 없다고 되어 있다는 점은 이해하고 있습니다.)

제 조언은 결심을 하고 새 위치로 지시하는 것입니다. 30분을 넘기지 않을 것이며, 큰 그림에서 보면 아무것도 아닌 시간입니다. 지금 상황이 좀 난처하긴 하죠 :slight_smile:

Discourse를 특정 태그에 고정하려는 시도는 하지 말고, 일반적인 업데이트에 의존하세요.

stable 또는 tests-passed를 선택하고 그걸로 유지하세요 …

이번에는 새로운 드롭렛을 생성하고, 복구를 위해 최소한의 설정을 한 다음, 사이트가 다운되었음에도 불구하고 여전히 명령줄을 통해 접근 가능했을 때 만들 수 있었던 백업을 복구하기 위해 다음 지침을 따랐습니다: Restore a backup from the command line

이제 아래 오류에 직면했습니다. 어쩌면 데이터베이스가 손상되었을까요? :thinking:

이전 백업을 복구해 볼 수 있습니다.

./launcher rebuild app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20231218-0429: Pulling from discourse/base
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: Image is up to date for discourse/base:2.0.20231218-0429
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-01-06T21:09:54.354218 #1]  INFO -- : Reading from stdin
I, [2024-01-06T21:09:54.365267 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2024-01-06T21:09:54.421443 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2024-01-06T21:09:54.421795 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2024-01-06T21:09:54.427121 #1]  INFO -- : 
I, [2024-01-06T21:09:54.427537 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2024-01-06T21:09:54.434259 #1]  INFO -- : 
I, [2024-01-06T21:09:54.434795 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2024-01-06T21:09:54.441347 #1]  INFO -- : 
I, [2024-01-06T21:09:54.441696 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2024-01-06T21:09:54.448226 #1]  INFO -- : 
I, [2024-01-06T21:09:54.448601 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2024-01-06T21:09:54.454601 #1]  INFO -- : 
I, [2024-01-06T21:09:54.454965 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2024/01/06 21:09:54 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Connection refused
I, [2024-01-06T21:09:54.470043 #1]  INFO -- : 
I, [2024-01-06T21:09:54.470647 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2024-01-06T21:09:54.478233 #1]  INFO -- : 
I, [2024-01-06T21:09:54.478786 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2024-01-06T21:09:54.486059 #1]  INFO -- : 
I, [2024-01-06T21:09:54.486533 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-01-06T21:09:54.491565 #1]  INFO -- : 
I, [2024-01-06T21:09:54.491920 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-01-06T21:09:54.496463 #1]  INFO -- : 
I, [2024-01-06T21:09:54.508217 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2024-01-06T21:09:54.519782 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2024-01-06T21:09:54.531602 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2024-01-06T21:09:54.545224 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2024-01-06T21:09:54.545698 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2024-01-06T21:09:57.594747 #1]  INFO -- : 
I, [2024-01-06T21:09:57.596324 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2024-01-06T21:09:57.601398 #1]  INFO -- : 
I, [2024-01-06T21:09:57.601559 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2024-01-06T21:09:57.647669 #1]  INFO -- : 
I, [2024-01-06T21:09:57.648126 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2024-01-06T21:09:57.654847 #1]  INFO -- : 
I, [2024-01-06T21:09:57.655228 #1]  INFO -- : > /root/upgrade_postgres
I, [2024-01-06T21:09:57.671346 #1]  INFO -- : 
I, [2024-01-06T21:09:57.671840 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2024-01-06T21:09:57.677190 #1]  INFO -- : 
I, [2024-01-06T21:09:57.678815 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.680570 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.681591 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.693950 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.696644 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.699678 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.706129 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2024-01-06T21:09:57.716052 #1]  INFO -- : 
I, [2024-01-06T21:09:57.716636 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.717255 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.721602 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-01-06T21:09:57.727937 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-01-06T21:09:57.728569 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-01-06T21:09:57.732277 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-01-06T21:09:57.733290 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-01-06T21:09:57.738665 #1]  INFO -- : > sleep 5
2024-01-06 21:09:57.897 UTC [42] LOG:  starting PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-01-06 21:09:57.897 UTC [42] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-01-06 21:09:57.897 UTC [42] LOG:  listening on IPv6 address "::", port 5432
2024-01-06 21:09:57.904 UTC [42] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-01-06 21:09:57.914 UTC [45] LOG:  database system was interrupted; last known up at 2024-01-06 21:06:38 UTC
2024-01-06 21:09:58.287 UTC [45] LOG:  database system was not properly shut down; automatic recovery in progress
2024-01-06 21:09:58.300 UTC [45] LOG:  redo starts at 6/3F42F228
I, [2024-01-06T21:10:02.744704 #1]  INFO -- : 
I, [2024-01-06T21:10:02.745102 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2024-01-06 21:10:02.852 UTC [49] postgres@postgres FATAL:  the database system is starting up
2024-01-06 21:10:02.857 UTC [50] postgres@template1 FATAL:  the database system is starting up
createdb: error: could not connect to database template1: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  the database system is starting up
I, [2024-01-06T21:10:02.865413 #1]  INFO -- : 
I, [2024-01-06T21:10:02.867743 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2024-01-06 21:10:02.984 UTC [54] postgres@discourse FATAL:  the database system is starting up
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  the database system is starting up
I, [2024-01-06T21:10:02.989529 #1]  INFO -- : 
I, [2024-01-06T21:10:02.989918 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
2024-01-06 21:10:03.100 UTC [58] postgres@discourse FATAL:  the database system is starting up
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  the database system is starting up
I, [2024-01-06T21:10:03.107339 #1]  INFO -- : 
I, [2024-01-06T21:10:03.107772 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
2024-01-06 21:10:03.200 UTC [62] postgres@discourse FATAL:  the database system is starting up
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  the database system is starting up
I, [2024-01-06T21:10:03.222053 #1]  INFO -- : 
I, [2024-01-06T21:10:03.222926 #1]  INFO -- : Terminating async processes
I, [2024-01-06T21:10:03.223018 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2024-01-06 21:10:03.238 UTC [42] LOG:  received fast shutdown request
2024-01-06 21:10:03.362 UTC [65] LOG:  shutting down
2024-01-06 21:10:03.602 UTC [42] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' failed with return #<Process::Status: pid 59 exit 2>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
bootstrap failed with exit code 2
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
a74fe31949946fbbd088418657abc63cca8f2d8ecda9d2d200979f275df55711

rsync를 사용하여 Discourse 사이트를 다른 VPS로 이전할 수 있습니다. 이렇게 하면 인증서와 데이터베이스도 함께 복사됩니다.

이상하네요. 여기부터 문제가 시작되는 것 같습니다. 이 부분 이전은 모두 정상으로 보입니다.

제 생각에는 다음과 같이 보여야 합니다:

2024-01-06 11:20:06.423 UTC [44] LOG:  database system was shut down at 2024-01-06 10:47:08 UTC
2024-01-06 11:20:06.467 UTC [41] LOG:  database system is ready to accept connections

그냥 백업 없이 기본 Discourse를 설치한 다음, 온라인에서 백업을 복원해 보는 것은 어떨까요?

다시 한번 확인해 보면:

database system was not properly shut down; automatic recovery in progress

간단한 구글 검색을 해보니, 이것이 데이터베이스가 손상되었음을 나타내는 증상인 것으로 보입니다.

네, 이전 백업을 시도해 보세요!

음, 이제 좀 진전이 있는 것 같네요.

지금 502 Bad Gateway 페이지가 뜨고 있습니다. ./launcher logs app를 실행하면 다음과 같은 내용이 표시됩니다.


nginx: [emerg] cannot load certificate "/shared/ssl/discuss.eroscripts.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/discourse.conf:60
nginx: [emerg] cannot load certificate "/shared/ssl/discuss.eroscripts.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up, want up
run-parts: executing /etc/runit/3.d/02-unicorn
(5248) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
timeout: run: postgres: (pid 5242) 2470s, want down, got TERM
run-parts: /etc/runit/3.d/99-postgres exited with return code 1
ok: down: nginx: 9s, normally up
ok: down: redis: 8s, normally up
ok: down: unicorn: 9s, normally up
ok: down: cron: 1s, normally up
ok: down: rsyslog: 1s, normally up
kill: run: postgres: (pid 5242) 2478s, want down, got TERM
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Sat 06 Jan 2024 10:44:40 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat 06 Jan 2024 10:44:40 PM UTC] Single domain='discuss.eroscripts.com'
[Sat 06 Jan 2024 10:44:41 PM UTC] Getting domain auth token for each domain
[Sat 06 Jan 2024 10:44:43 PM UTC] Getting webroot for domain='discuss.eroscripts.com'
[Sat 06 Jan 2024 10:44:43 PM UTC] Verifying: discuss.eroscripts.com
[Sat 06 Jan 2024 10:44:44 PM UTC] Pending, The CA is processing your order, please just wait. (1/30)
[Sat 06 Jan 2024 10:44:48 PM UTC] discuss.eroscripts.com:Verify error:159.223.125.223: Invalid response from https://discuss.eroscripts.com/.well-known/acme-challenge/ygqIckpuhRNDWk1xFI_LdPhAHKd3WIncOluj_7oQusc: 502
[Sat 06 Jan 2024 10:44:48 PM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log
Can't open ca.cer for reading, No such file or directory
139736654603584:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('ca.cer','r')
139736654603584:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:76:
unable to load certificate
Error loading file /dev/fd/63
[Sat 06 Jan 2024 10:44:49 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat 06 Jan 2024 10:44:50 PM UTC] Single domain='discuss.eroscripts.com'
[Sat 06 Jan 2024 10:44:50 PM UTC] Getting domain auth token for each domain
[Sat 06 Jan 2024 10:44:51 PM UTC] Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/failed-validation-limit/",
  "status": 429
}
[Sat 06 Jan 2024 10:44:51 PM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log
[Sat 06 Jan 2024 10:44:52 PM UTC] Installing key to: /shared/ssl/discuss.eroscripts.com.key
[Sat 06 Jan 2024 10:44:52 PM UTC] Installing full chain to: /shared/ssl/discuss.eroscripts.com.cer
cat: /shared/letsencrypt/discuss.eroscripts.com/fullchain.cer: No such file or directory
[Sat 06 Jan 2024 10:44:53 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat 06 Jan 2024 10:44:53 PM UTC] Single domain='discuss.eroscripts.com'
[Sat 06 Jan 2024 10:44:54 PM UTC] Getting domain auth token for each domain
[Sat 06 Jan 2024 10:44:55 PM UTC] Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/failed-validation-limit/",
  "status": 429
}
[Sat 06 Jan 2024 10:44:55 PM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log
Can't open ca.cer for reading, No such file or directory
140139135829312:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('ca.cer','r')
140139135829312:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:76:
unable to load certificate
Error loading file /dev/fd/63
[Sat 06 Jan 2024 10:44:56 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat 06 Jan 2024 10:44:56 PM UTC] Single domain='discuss.eroscripts.com'
[Sat 06 Jan 2024 10:44:57 PM UTC] Getting domain auth token for each domain
[Sat 06 Jan 2024 10:44:58 PM UTC] Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/failed-validation-limit/",
  "status": 429
}
[Sat 06 Jan 2024 10:44:58 PM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log
[Sat 06 Jan 2024 10:44:58 PM UTC] Installing key to: /shared/ssl/discuss.eroscripts.com_ecc.key
[Sat 06 Jan 2024 10:44:58 PM UTC] Installing full chain to: /shared/ssl/discuss.eroscripts.com_ecc.cer
cat: /shared/letsencrypt/discuss.eroscripts.com_ecc/fullchain.cer: No such file or directory
Can't open ca.cer for reading, No such file or directory
140163653252416:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('ca.cer','r')

그리고 빨간색으로 표시된 부분들을 복사하면 다음과 같습니다.

[Sat 06 Jan 2024 10:44:48 PM UTC] discuss.eroscripts.com:Verify error:159.223.125.223: Invalid response from https://discuss.eroscripts.com/.well-known/acme-challenge/ygqIckpuhRNDWk1xFI_LdPhAHKd3WIncOluj_7oQusc: 502
[Sat 06 Jan 2024 10:44:48 PM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log

[Sat 06 Jan 2024 10:44:51 PM UTC] Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/failed-validation-limit/",
  "status": 429
}

안녕하세요,
저도 같은 서버를 관리하고 있으며, 지금까지 진행한 작업은 다음과 같습니다.
호스트를 focal에서 jammy로 업그레이드하고, 모든 이미지를 삭제한 뒤 새 이미지를 다시 다운로드했습니다.
master 브랜치에 있는 것을 발견하여 main 브랜치로 변경했습니다.
최신 커밋에 있는지 확인했습니다.

이제 빌드는 되지만 여전히 500 에러 문제가 있습니다.
unicorn 로그를 확인해 보니 다음과 같은 메시지가 계속 출력되고 있습니다:

E, [2024-01-07T04:58:49.140147 #682] ERROR -- : app error: Missing `secret_key_base` for 'production' environment, set this string with `bin/rails credentials:edit` (ArgumentError)
E, [2024-01-07T04:58:49.140266 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/application.rb:576:in `validate_secret_key_base'
E, [2024-01-07T04:58:49.140278 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/application.rb:419:in `secret_key_base'
E, [2024-01-07T04:58:49.140287 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/application.rb:254:in `env_config'
E, [2024-01-07T04:58:49.140295 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/engine.rb:716:in `build_request'
E, [2024-01-07T04:58:49.140304 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/application.rb:598:in `build_request'
E, [2024-01-07T04:58:49.140311 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/engine.rb:529:in `call'
E, [2024-01-07T04:58:49.140319 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'
E, [2024-01-07T04:58:49.140327 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'
E, [2024-01-07T04:58:49.140336 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-2.2.8/lib/rack/urlmap.rb:74:in `block in call'
E, [2024-01-07T04:58:49.140344 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-2.2.8/lib/rack/urlmap.rb:58:in `each'
E, [2024-01-07T04:58:49.140353 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-2.2.8/lib/rack/urlmap.rb:58:in `call'
E, [2024-01-07T04:58:49.140368 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
E, [2024-01-07T04:58:49.140378 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
E, [2024-01-07T04:58:49.140386 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
E, [2024-01-07T04:58:49.140409 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
E, [2024-01-07T04:58:49.140417 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
E, [2024-01-07T04:58:49.140426 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
E, [2024-01-07T04:58:49.140434 #682] ERROR -- : /var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

현재 이것이 문제의 원인에 대한 유일한 단서입니다.

해당 문제를 수정했습니다.
쓰기를 닫거나 잠금 처리해 주세요. 결국 새 서버로 이전하고 백업에서 복원했습니다.

간단히 말하면, 기존 서버에서 다양한 것으로 보이는 무작위적인 문제들이 발생했습니다. 새 드롭렛으로 마이그레이션하고 복원한 결과 모든 문제가 해결된 것 같습니다. 하지만 원래 문제가 왜 발생했는지는 여전히 알 수 없습니다.

기존 서버에서 겪었던 문제들과 시도했던 조치에 대한 추가 세부 사항은 다음과 같습니다.

  • 폴더/파일의 소유자가 존재하지 않아 사이트가 postgres와 redis와 통신할 수 없었습니다. 이전 docker 이미지에서 ID가 불일치하는 상태였습니다.
  • 올바른 버전의 Ruby를 사용하고 master 브랜치를 main 브랜치로 변경하기 위해 호스트 OS를 업데이트해야 했습니다. 패키지 저장소를 focal에서 jammy로 변경하고 업데이트를 실행했지만, 이는 종속성 문제를 궁극적으로 해결하지는 못했습니다. 다만 이미지 빌드 실패는 해결되었습니다.
  • Unicorn 웹서버에서 secret_base_key가 누락되었다는 오류가 발생했습니다. 웹서버에서 민감한 토큰을 다루지 않으므로 왜 이런 오류가 발생했는지 알 수 없습니다.

DNS TTL이 너무 길어 수정 사항을 테스트하기 어려웠지만, 이는 우리 측 책임입니다.

또한 CDN에서 몇 가지 이상한 오류가 발생했으나 결국 해결되었습니다.

  • 설정은 변경하지 않았습니다. 캐시를 비워 백업 버전으로 캐시를 다시 채웠습니다. 한동안 500 오류가 많이 발생했지만 시간이 지나면서 해결되었습니다. 기술 지원을 요청했지만 상대방 측에서는 문제를 발견하지 못했습니다. Discourse가 content-length: 0으로 파일을 서빙하고 있는 것처럼 보였는데, 우리가 조사한 유일한 오류였습니다. 하지만 어떤 이유에서인지 시간이 지나면서 스스로 해결되었습니다.

결국, 원래 서버에서 어떤 일이 일어나서 그 모든 문제가 발생했는지는 정말로 알 수 없습니다.

우리의 이메일 서비스가 중단된 것 같습니다 (Amazon SES를 사용 중입니다). 아직 원인을 조사하지 않았습니다.

복구 후 disable emails 설정이 자동으로 켜집니다. 이것이 문제일 수 있을까요? 그렇다면 설정을 다시 'no’로 변경할 수 있습니다.

복원 후 AWS, DNS, app.yml 또는 설정에서 변경 사항을 만들 필요가 없어야 하는 것이 맞죠?

설정에서 이메일이 복원 후 활성화되지 않았습니다. 여전히 '이메일 비활성화: 아니요’라고 표시되고 있습니다.

aws SES는 복원 이후 이메일 전송 건수가 0건으로 표시됩니다.

/sidekiq에서는 44,934건 처리됨, 1,470건 실패로 표시되는데, 실패한 작업에 대한 추가 정보를 찾는 방법을 모르겠습니다.

/logs fatal 탭 (NSFW 제목 양해 부탁드립니다)


ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "posts" does not exist LINE 1: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS N... ^ ) lib
Su 10:15 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "topics" does not exist LINE 1: ...cs"."bannered_until", "topics"."external_id" FROM "topics" W...
Su 10:15 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "topics" does not exist LINE 1: ...cs"."bannered_until", "topics"."external_id" FROM "topics" W...
Su 10:16 am
4
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "users" does not exist LINE 1: SELECT "users".* FROM "users" WHERE "users"."username_lower"... ^ ) ap
Su 10:17 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: ..., "categories"."uploaded_background_dark_id" FROM "categorie...
Su 10:17 am
2
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: ..., "categories"."uploaded_background_dark_id" FROM "categorie...
Su 10:17 am
2
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" WHERE "categories...
Su 10:18 am
4
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:18 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:29 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "posts" does not exist LINE 1: ...ge_upload_id", "posts"."outbound_message_id" FROM "posts" WH...
Su 10:29 am
2
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "sitemaps" does not exist LINE 1: SELECT "sitemaps".* FROM "sitemaps" WHERE "sitemaps"."name" ...
Su 10:32 am
74
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:33 am
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "themes" does not exist LINE 1: SELECT "themes"."color_scheme_id" FROM "themes" WHERE "theme...
Su 10:33 am
3
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "tags" does not exist LINE 1: SELECT "tags"."name" FROM "tags" WHERE "tags"."id" NOT IN (S... ^ )
Su 10:33 am
8
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" LEFT OUTER JOIN "...
Su 10:33 am
15
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:34 am
29
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" WHERE "categories...
Su 10:34 am
3
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "users" does not exist LINE 1: SELECT "users".* FROM "users" INNER JOIN "user_emails" ON "u... ^ ) ap
Su 10:34 am
9
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "stylesheet_cache" does not exist LINE 1: SELECT "stylesheet_cache"."created_at" FROM "stylesheet_cach...
Su 10:35 am
5
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" WHERE "categories...
Su 10:35 am
39
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "permalinks" does not exist LINE 1: SELECT 1 AS one FROM "permalinks" WHERE "permalinks"."url" =... ^
Su 10:35 am
50
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:35 am
457
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" WHERE "categories...
Su 10:35 am
30
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "permalinks" does not exist LINE 1: SELECT 1 AS one FROM "permalinks" WHERE "permalinks"."url" =... ^
Su 10:35 am
1189
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Su 10:35 am
553
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" WHERE "categories...
Su 10:35 am
36
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((... 

/logs errors 탭

Failed to warm up pretty text: PG::UndefinedTable: ERROR: relation "custom_emojis" does not exist LINE 1: SELECT "custom_emojis".* FROM "custom_emojis" ORDER BY "cust...
Su 10:27 am
2
Job exception: could not obtain a connection from the pool within 5.000 seconds (waited 5.036 seconds); all pooled connections were in use
Su 10:53 am
default: Failed to pull hotlinked image (https://discourse-s3-cdn.eroscripts.com/uploads/optimized/3X/3/3/33050afb6576555544a856d5c6f19583bfc854be_2_690x362.png) post: 325176 PG::UniqueViolation: ERRO
Su 5:33 pm
default: Failed to pull hotlinked image (https://rule34video.com/contents/videos_screenshots/3125000/3125485/preview.jpg) post: 338794 PG::UniqueViolation: ERROR: duplicate key value violates unique
1:04 am
2
default: Failed to pull hotlinked image (https://rule34video.com/contents/videos_screenshots/3125000/3125482/preview_1080p.mp4.jpg) post: 338794 PG::UniqueViolation: ERROR: duplicate key value violat 

/logs warning 탭

 Load more
553
Failed to handle exception in exception app middleware : ActiveRecord::StatementInvalid : PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "catego
Su 10:35 am
36
Failed to handle exception in exception app middleware : ActiveRecord::StatementInvalid : PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FRO
Su 10:36 am
645
Unexpected error in Message Bus : ActiveRecord::StatementInvalid : PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WH
Su 10:36 am
2
Topic List Previews theme/component is throwing errors: TypeError: e.capitalize is not a function. (In 'e.capitalize()', 'e.capitalize' is undefined)
Su 10:36 am
Patreon token refresh failed with status: 401. {"error": "invalid_grant"}
Su 10:41 am
4
Topic List Previews theme/component is throwing errors: TypeError: e.capitalize is not a function
Su 10:41 am
10
Topic List Previews theme/component is throwing errors: TypeError: e.capitalize is not a function
Su 10:41 am
[DiscourseJsProcessor] DEPRECATION: Invoking the `<LinkTo>` component with positional arguments is deprecated.Please use the equivalent named arguments (`@route`). ('discourse/theme-10/discourse/templ
Su 10:46 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 10:51 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 10:53 am
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardian/
Su 10:58 am
2
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
Su 1:33 pm
Deprecation notice: `SiteSetting.min_trust_to_create_tag` has been deprecated. Please use `SiteSetting.create_tag_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardia
Su 3:01 pm
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
Su 3:16 pm
10
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
Su 4:39 pm
10
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Su 4:39 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 4:40 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Abella Anderson shows her perfect T--- while ridin
Su 4:42 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 4:50 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 5:04 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 5:06 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 5:06 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 5:06 pm
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
Su 5:06 pm
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Su 5:06 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 5:10 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 5:11 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 5:33 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 5:35 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:05 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 6:15 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 6:20 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:20 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:20 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:20 pm
3
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
Su 6:32 pm
3
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Su 6:32 pm
2
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 6:43 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:50 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 6:50 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 7:05 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 7:05 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 7:19 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 7:20 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 7:20 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 7:35 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 7:35 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 7:35 pm
Failed to process hijacked response correctly : NoMethodError : undefined method `days_visited' for nil:NilClass
Su 8:27 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 8:51 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 9:36 pm
2
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;PHONKY HERO&quot;, &quot;description&quot;: &quot
Su 10:21 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 10:41 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 10:51 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
Su 10:51 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 10:51 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
Su 11:07 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;【HMV】mizumizuni&quot;, &quot;description&quot;: &
Su 11:07 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;(TIER 1 EARLY-ACCESS) SK3L3T0K. DARK ELF LINK&quot
Su 11:22 pm
2
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
Su 11:32 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Dezyred - Sensual Blowjob With Sybil (Bonus Scene)
Su 11:36 pm
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Dezyred - Sensual Blowjob With Sybil (Bonus Scene)
Su 11:36 pm
2
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
12:52 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
1:00 am
4
Deprecation notice: `SiteSetting.min_trust_to_create_tag` has been deprecated. Please use `SiteSetting.create_tag_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardia
1:02 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
1:05 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
1:21 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
1:31 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
1:51 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
2:20 am
4
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
2:33 am
5
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardian/
3:26 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
3:34 am
4
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/app/models/co
3:53 am
6
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
4:33 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
4:34 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
5:18 am
2
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/app/models/co
5:53 am
9
Sidekiq is consuming too much memory (using: 523.61M) for 'discuss.eroscripts.com', restarting
5:59 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ImageObject&quot;, &quot;contentUrl&quot;: &quot;https://c10.patreonusercontent.com/4/patreon-
6:24 am
14
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardian/
6:26 am
4
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/gua
6:33 am
2
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Recovery - Golden Hands&quot;, &quot;description&
6:34 am
10
Deprecation notice: `SiteSetting.min_trust_to_edit_post` has been deprecated. Please use `SiteSetting.edit_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/app/models/co
6:56 am
5
Deprecation notice: `SiteSetting.min_trust_to_flag_posts` has been deprecated. Please use `SiteSetting.flag_post_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/site_set
7:01 am
5
Deprecation notice: `SiteSetting.min_trust_level_to_allow_user_card_background` has been deprecated. Please use `SiteSetting.user_card_background_allowed_groups` instead. (removal in Discourse 3.3) A
7:01 am
5
Deprecation notice: `SiteSetting.min_trust_level_to_allow_ignore` has been deprecated. Please use `SiteSetting.ignore_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/sit
7:01 am
5
Deprecation notice: `SiteSetting.min_trust_to_create_tag` has been deprecated. Please use `SiteSetting.create_tag_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/site_se
7:01 am
16
Deprecation notice: `SiteSetting.min_trust_to_create_tag` has been deprecated. Please use `SiteSetting.create_tag_allowed_groups` instead. (removal in Discourse 3.3) At /var/www/discourse/lib/guardia
7:02 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Dezyred - Sensual Blowjob With Sybil (Bonus Scene)
7:03 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Dezyred - Sensual Blowjob With Sybil (Bonus Scene)
7:03 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;Dezyred - A Day With Bella Rolland - Netflix and C
7:03 am
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;ProfilePage&quot;, &quot;author&quot;: { &quot;@type&quot;: &quot;Person&quot;, &quot;name
7:03 am
2
Error parsing JSON-LD: { &quot;@context&quot;: &quot;http://schema.org&quot;, &quot;@type&quot;: &quot;CreativeWork&quot;, &quot;name&quot;: &quot;VRConk - Jessica Rabbit - Vanna Bardot&quot;, &qu 

아, 그러니까 문제는 discourse-setup 또는 기타 이유로 app.yml이 업데이트된 것이었네요. 아래 줄들이 주석이 해제되고, discourse.example.com이라는 기본 플레이스홀더 값이 채워져 있었습니다.

  • DISCOURSE_SMTP_DOMAIN:
  • DISCOURSE_NOTIFICATION_EMAIL:

이 항목들이 추가되기 전에 이메일을 설정한 것 같습니다. 이 필드를 채우니 이메일이 다시 작동합니다.

마이그레이션 시에는 보통 discourse-setup을 사용하지 않습니다. 일반적으로 app.yml을 복사한 후 rebuild를 직접 실행합니다.