アップデート = ☠

皆さん、こんにちは。

アップデートには pretty well に対応していますが、アップデートが必要だと知り、実行したところ、管理画面以外は UI が表示されなくなりました。

SSH でサーバーのアップデートを実行し、すべて問題ないことを確認しましたが、改善しませんでした。

ロールバックを試みたところ、以下のエラーが発生しました。

セーフモードで起動したところ、UI は表示されましたが、一部のみでした。

ログインできません。「ユーザー名が利用可能」と表示され、メールアドレスが存在しないと表示されます。

助けていただけると幸いです。ありがとうございます。


編集:サーバーを再起動したところ、以下の表示になりました。

気を取り直して登録しようとしましたが、バックアップが必要だと思いました。

ここでもうまくいきませんでした。


編集:別のウィンドウをリフレッシュしたところ、登録できるようになったようです。

その後

それでもうまくいきませんでした。


SSH で確認したところ、状況は以前と変わりませんでした。


編集

image

DISCOURSE DOCTOR Sun Nov 12 01:54:06 UTC 2023
OS: Linux ip-10-0-159-37 6.2.0-1015-aws #15~22.04.1-Ubuntu SMP Fri Oct  6 21:37:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.full30.com
SMTP_ADDRESS=smtp.sendgrid.net
DEVELOPER_EMAILS=REDACTED 
SMTP_PASSWORD=REDACTED 
SMTP_PORT=587
SMTP_USER_NAME=apikey
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED  LETSENCRYPT_ACCOUNT_EMAIL

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.7, build afdd53b

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS                      PORTS     NAMES
0be0150fecde   local_discourse/app   \"/sbin/boot\"   5 months ago   Exited (5) 11 minutes ago             app

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
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.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-11-12T01:54:13.829288 #1]  INFO -- : Reading from stdin
I, [2023-11-12T01:54:13.834181 #1]  INFO -- : 
> locale-gen $LANG && update-locale
I, [2023-11-12T01:54:13.862453 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-11-12T01:54:13.862638 #1]  INFO -- : 
> mkdir -p /shared/postgres_run
I, [2023-11-12T01:54:13.865023 #1]  INFO -- : 
I, [2023-11-12T01:54:13.865390 #1]  INFO -- : 
> chown postgres:postgres /shared/postgres_run
I, [2023-11-12T01:54:13.867489 #1]  INFO -- : 
I, [2023-11-12T01:54:13.867791 #1]  INFO -- : 
> chmod 775 /shared/postgres_run
I, [2023-11-12T01:54:13.869643 #1]  INFO -- : 
I, [2023-11-12T01:54:13.869925 #1]  INFO -- : 
> rm -fr /var/run/postgresql
I, [2023-11-12T01:54:13.871930 #1]  INFO -- : 
I, [2023-11-12T01:54:13.872203 #1]  INFO -- : 
> ln -s /shared/postgres_run /var/run/postgresql
I, [2023-11-12T01:54:13.874058 #1]  INFO -- : 
/tmp/discourse-debug.txt
「いいね!」 2

これは重要だと思われます。

警告: サーバー TCP リスニングソケット *:6379 を作成できませんでした: bind: アドレスは既に使用されています

Redis はポート 6379 で実行されることが期待されていると思います。

Redis サーバーを作成できないことが、マイグレーションの問題を引き起こす可能性がありますか?

エラー: 関係 "summary_sections" は既に存在します

何らかの理由で、summary_sections テーブルを作成するマイグレーションが再度実行されています。ログに他の重複テーブルエラーはありますか?

最近のバックアップファイルはありますか?

「いいね!」 6

笑、はい、私も同じように推測します。残念ながら、サーバーを確認したところ、11月5日が最新でした。管理画面にログインできないため、Discourseによって新しいものが作成されたかどうかを確認できません。

しかし…これは今朝のものです。

forum

バックアップを実行するために管理ダッシュボードにログインできない場合、どうすればよいかわかりません。

返信ありがとうございます。1週間前のバックアップであっても、すぐに復旧できることを願っています。

ロバート

「いいね!」 1

ログに慣れていないので、5年間、問題がほとんどなく簡単に修正できたため、慣れる必要がなく、尋ねる技術チームもいません。取得して投稿する方法を教えていただけますか?また、アップロードした場合、Doctorファイルのように編集されますか?

この最新のアップデートで新しいサイトにも問題が発生しました。インストールの途中で誤って中断してしまった可能性があります。その後、サイトは更新が完了したと同時に緊急の更新が必要であると報告しましたが、直近のアップデートが完了したばかりであるため更新できませんでした。

コンソールからアプリを再構築することで解決しました。バックアップからの復旧は必要ありませんでした。

バックアップからサイトを再起動する方法も知っておくと良いでしょう。その方法もわかりません。

「いいね!」 2

もう一度試してみます。以下のコマンドを実行しました。

cd /var/discourse
git pull
./launcher rebuild app

そして、また以下のようなエラー/警告が表示されました。

エラー/警告は以下の通りです。

image

Doctorを実行しましたが、今回も役に立ちませんでした。レポートは保持していますが、新しい情報は含まれていませんでした。

「いいね!」 1

現在、別の再構築を行っていますが、同様のエラーが発生しています。

137:M 12 Nov 2023 13:09:14.143 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
137:M 12 Nov 2023 13:09:14.143 # Failed listening on port 6379 (TCP), aborting.

しかし、それでも続行しており、以前にもこれらを見たことがありますが、インストールは完了しました。

sshでrootとしてサーバーコンソールにログインしていますか?

インストールの途中で数回、完了までに時間がかかり、10分以上かかったように思われました。最初はクラッシュしたと思いましたが、十分な時間待った後、完了しました。

不正な/満たされていないピア依存関係に関する多くのエラー。

その後、「background saving terminated with success」という行で停止しますが、これは結論のように聞こえますが、 apparently not です。ここで次のステップに進むのに10分かかることがあります。

「いいね!」 2

ログの詳細を表示するには、次のようなことができます。

root としてログインするか、「sudo su」を実行します。
次にコマンドを実行します。

cd /var/discourse
./launcher enter app
tail -f log/production.log

最後のコマンドを実行した後、Discourse に対して HTTP リクエストを行う必要があります。シェルに新しいエラーメッセージが表示されます。その後、Ctrl+C を使用して tail コマンドの実行を停止し、メッセージを表示またはコピーできます。

コンテナシェルを終了するには、exit コマンドを使用できます。

「いいね!」 2

はい

Error response from daemon: Container 0be0150fecde6af5e98c0f12b97d24ccc1333fee2e96f02174ac63b79df8efbc is not running
tail: cannot open ‘log/production.log’ for reading: No such file or directory
tail: no files remaining

curl “https://forum.full30.com" で HTTP リクエストを試しましたが、

curl: (3) URL using bad/illegal format or missing URL

という結果になりました。

なので… HTTP リクエストの意味を理解していなかったのかもしれません :man_shrugging:

それが直近のバックアップであること、そして私がこのようなことに詳しいわけではないことを考えると、アドバイスをするべきか分かりません。

私の知る限りでは、「Warning: Could not create server TCP listening socket *:6379」という問題は、マイグレーションで発生しているエラーとは無関係だと思われます。例えば:

INFO -- cd /var/www/discourse and su discourse -c 'bundle exec rake db:migrate'

ERROR: database "discourse" already exists

Error: role "discourse" already exists

Error: relation "summary_sections" already exists

これらのエラーは、データベースが何らかの形で破損していることを示唆しているようです。上記のログの抜粋のINFOセクションにある bundle exec rake db:migrate コマンドは、Discourseにデータベースの schema_migrations テーブルをチェックさせ、どのマイグレーションが以前に実行されたかを確認させるはずです。これにより、同じマイグレーションが複数回実行されるのを防ぎます。したがって、データベースの schema_migrations テーブルが破損しているか、db/migrations フォルダに重複したエントリが何らかの方法で入り込んでいるか、あるいは db/migrations フォルダ内のファイルが何らかの方法でリネームされているかのいずれかだと推測します。これらのいずれかが発生する原因については分かりません。

アプリに ./launcher enter app で入り、そこから手動でマイグレーションを実行してみて、何か違いがあるか確認したくなります。しかし、それを行うのはお待ちください。ランチャースクリプトに関する知識が豊富な誰かがこの投稿を見て、私の記述に誤りがあれば訂正してくれることを願っています。

「いいね!」 3

ご意見、またはどなたかのご意見をお聞かせください。

サーバーの移行を計画していますが、これらの問題は次のようなものに集中しているようです。

PG::DuplicateTable: ERROR: relation "summary_sections" already exists

など、既に存在するアイテムですか?

移行で解決するでしょうか?

それが問題の解決につながると思います。新しいインストールを作成し、そこに最新のバックアップファイルをインポートしてみてください。何も損なうことはありません。

「いいね!」 2

サイトはすでに新規インストールであるかのように動作しています。スクリーンショットをいくつかご覧ください。

これはsafemodeを使用しただけで発生したもので、アップデートによるかなりのクラッシュです。さらに奇妙なのは、私のDiscourseインスタンスだけが影響を受けているように見えることです。

git pullなどを試しましたが、何も変わりませんでした。もし間違っているなら、教えてください。

試しました

./launcher start-cmd app

./launcher cleanup

18MBの画像を削除し、新しいプル/再構築/失敗/ドクターを行いましたが、うまくいきませんでした。

APPにアクセスしたとき、私の情報はすべてまだ存在しているので、少なくともそれは良いことです。

重複テーブルのエラーは無視しても問題ない可能性が95%あります。(フォーラムでアップグレードのたびにそれらを見たのを覚えています)

「いいね!」 1

無視しましたが、まだオンラインに戻ることができません。

これらのエラーについてどう思いますか?

再構築の完全なログを投稿していただけますか?

「いいね!」 1

昨日も同じ問題が発生しました。以前のアップデートでも同様の動作があったため、サーバーの問題だと思い、一時的に解決するために実行しました。

/launcher rebuild app

最新のバックアップをダウンロードし、新しいサーバーをデプロイしました。バックアップの復元は非常に簡単で、不思議なことにすべてがすでに更新されていました。

「いいね!」 1
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 645 exit 1>
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 {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** 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.
adb2c505fd2f1289f44586496fea24ff31264f73c26eb524baf16602a189f
root@ip-10-0-159-37:/var/discourse#

具体的に何をすればよいですか?

はい、最初に何を削除すればよいですか?