トラブルシューティング
象さんがバンバンしていて、「何かが間違っています(something went wrong)」と言われました。
全てのエラーメッセージはスタックトレース付きでシステムログに記録されています。systemdを使っているなら、各systemdサービスのログはjournalctl -u mastodon-web
など(web
ではない場合もあります)を使って確認できます。Dockerを使っている場合はdocker logs mastodon_web_1
(mastodon_web_1はコンテナ名)で確認してください。
サーバーサイドのエラーは一切表(WebUI, API等)にでてきません。これは、エラーが内部設定を表示してしまう場合があり、攻撃者に効率的な侵入、攻撃方法を教えていることになりかねないからです。
全てのMastodonのWebサーバーは一意のリクエストID付きのヘッダーを返します。ログにも同じIDが表示され、一対一に対応しています。エラーページのヘッダーを確認することで対応するスタックトレースをログから簡単に見つけることができます。
新しいバージョンにアップデートした後、一部のページの表示がおかしいです。スタイルが適用されていないからでしょう。なぜですか?
RAILS_ENV=production bin/rails assets:precompile
をアップデート後に実行したかを確認してください。そしてMastodonのWebプロセスを再起動してください。古いスタイルシートやスクリプトをそれらが保持しているかもしれないからです。他に考えられるのは、プリコンパイルがRAMの不足で失敗しているということです。webpackがメモリ不足を起こしています。この場合はスワップ領域を確保してください。それか、プリコンパイルを別のマシンで実行してpublic/packs
にそれを上書きしてください。
新しいバージョンにアップデートした後、いくつかのリクエストがエラーになり、ログにはcolumnsやtablesが無いと書いてあります。なぜですか?
RAILS_ENV=production bin/rails db:migrate
を実行したかを確認してください。Mastodonのコードがより新しいまたはより古いデータベースのスキーマにアクセスしているかもしれないからです。もしPgBouncerを使っているなら、この一つのコマンドを直接PostgreSQLに接続するようにしてください。PgBouncerはこのようなマイグレーション時のテーブルロックをサポートしていないからです。
私はtootctl
やrake
、rails
コマンドを実行しようとしていますが、初期化されていない定数などというエラーが出るだけです。何がいけませんか?
RAILS_ENV=production
を指定していることを確かめてください。デフォルトではenvironmentはdevelopmentになっています。そのため、コードはdevelopmentで依存指定したgemを読み込もうとします。しかし、production環境ではそのgemはインストールされないため、エラーが発生するのです。
最終更新 February 12, 2020 · このページを改善する
他の言語:
English