ユーザーのアバターが消えた

新しいフォーラムの立ち上げに向けて準備を進めています。DigitalOcean でセルフホスト型の Discourse(2.6.0.beta1)を運用していますが(余談ですが、この素晴らしいツールを無料で提供されていることにまだ驚いています)、最初はすべて正常に動作し、すべてのユーザー(自分自身も含む)にアバターが表示されていました。

しかし、ある瞬間、フォーラムの設定に変更を加えたわけでもないのに、ブラウザでページをリフレッシュすると、アバターがすべて消えてしまいました。

現在、トピック一覧は以下のようになっています:

興味深いことに、トピックを開くと「ステータスバー」にはアバターが表示されます:
existing_avatars

追記:シークレットモードで再度フォーラムを確認してみました。するとアバターはすべて消えており、どこかで表示されていたのはキャッシュに関係していたのかもしれません。

ただし、ユーザーのプロフィールを開くと、そこにもアバターは表示されません:

幸いにも、すでにデータのバックアップを開始しており、まだフォーラムのテスターも少ないため、バックアップから復元することで解決できることを願っています。しかし、根本原因を特定しなければ、同じ問題に再び直面する可能性があります。

私の理解では、これらのアバターは Gravatar から取得されるもののようです。

Discourse は初心者ですので、この報告に情報が不足している場合はあらかじめお詫び申し上げます。追加情報が必要な場合は、ご指示ください。

ありがとうございます

「いいね!」 1

ユーザーのプロフィール写真は、Gravatar アカウントを持っている場合、Gravatar から取得されます。この取得がどのくらいの頻度で行われるかは不明ですが、強制的にダウンロードする方法があります。

必要な場合は、以下のコマンドを実行して全ユーザーの画像を更新できます。

./launcher enter app
rails r 'UserAvatar.find_each {|u| print "."; u.update_gravatar!}'

実行には時間がかかります。

参考: Automatic updates of Gravatar avatars? - #7 by sam

「いいね!」 3

@IAmGav、ご提案ありがとうございます。

残念ながら、この手順を実行し30分待っても、アバターは表示されません。

この問題について数時間取り組みましたが、解決策が見つかりませんでした。バックアップからの復元も役に立ちませんでした :frowning:

2018 年のこの問題を見つけました: How to fix user avatar?

私の理解では、あの問題は Discourse の内部コンポーネント間の不互換性によるものでした。私にも同様のことが起きているのでしょうか?正直なところ、Discourse の問題であればより多くのインストールに影響するはずですが、前述の問題も報告者は 1 人だけでした。

ご支援いただけますと幸いです :pray:

「いいね!」 2

いくつかの推奨事項があります:

  1. 問題のある画像の URL を確認してください。URL の末尾に ?a を貼り付けると、画像が表示されるようになりますか?

  2. 1人のユーザーを手動で修正できますか(文字に切り替え、アバターをアップロードし、アバターに切り替え、アバターを更新)。

画像はローカルにありますか、それとも S3 上にありますか?

「いいね!」 2

@sam

画像はローカルに保存されています。画像の URL の末尾に ?a を追加しても解決しませんでした。

興味深いことに、設定ページでは自分の画像が表示されます(他のユーザーの場合は表示されません)。URL の観点から以下のような現象が起きています:

  • メインページから取得した自分の画像の URL は、?a を付けてもデフォルトのプレースホルダーに解決されます:https://forum.techyourchance.com/user_avatar/forum.techyourchance.com/vasiliy/45/2_2.png?a
  • 設定ページから取得した自分の画像の URL は、正しい画像に解決されます:https://forum.techyourchance.com/user_avatar/forum.techyourchance.com/vasiliy/120/2_2.png

1人のユーザーに対してのみ問題を修正しようと試みました。文字に変更し、カスタム画像に変更し、その後 Gravatar に戻しましたが、効果はありませんでした。

さらに別の問題も発生しています。これは無関係のように見えますが、2つの独立した問題が同時に発生する可能性は非常に低いため、両者に関連があるのではないかと疑っています。

フォーラムがユーザーに招待メールを送信しなくなりました(過去には送信されていました)。

数人のユーザーに招待を送りましたが、誰も招待を受け取っていません。そこで自分自身(異なるメールアドレス)に招待を送りましたが、これも届きませんでした。そのため、現在いくつかの招待が保留状態になっています:

すぐに問題が Mailgun との統合、あるいはメールの配信性にあるのではないかと考え、自分自身にテストメールを送信しましたが、即座に届きました。送信済みメールのページを確認すると、以下のような状態になっています:

フォーラムはテストメールを送信しましたが、招待メールは送信されませんでした。

この時点で、Discourse のインストールが深刻な状態になっていると確信しています。おそらく、自分が気づかないうちに何かしてしまったのでしょう。新しいコミュニティのローンチという最悪のタイミングで、何時間もこの問題と格闘してきました。そのため、バックアップからの復元を行わずに Discourse をクリーンインストールし、すべてのユーザーを再度招待することにします。幸いなことに、現在ユーザーは少なく、フォーラム上のコンテンツもほとんどありません。

念のため、古いインストールが残っている Droplet はしばらくそのままにしておきます。もしさらに情報が必要であれば、SSH 経由でアクセスを提供することも構いません。

ご支援ありがとうございます。クリーンインストールで解決することを願っています。

こちらのトピックもご確認ください:Avatars lost after restore. How to get them back? - #57 by Overgrow

こんにちは @Vasiliy

この問題のために新しいインスタンス全体を構築する前に、ジョブスケジューラ(Sidekiq)が正常に動作しているか、失敗したジョブがないか、ジョブキューが滞留していないかなどを確認することを検討してみてください。

your.cooldiscoursesite.com/sidekiq

単なる提案ですが……

また、Rails ログ、特にエラーログを確認することも検討してみてください。

「いいね!」 1

@neounix
ご提案ありがとうございます。

この問題のデバッグにさらに時間を割くことができないため、すでに新しいフォーラムを作成しました。今のところ問題なく動作しています。

正直なところ、ログを確認するということを思いつかなかった自分が少し愚かに感じられます。ログの内容を理解できるとは思っていませんでしたが、報告に添付すべきでした。遅かれ早かれ、というやつですね。rails ディレクトリからのすべてのログを今添付します。

少し grep で検索したところ、確かにエラーメッセージが含まれているようです。ただし、それらが何を意味しているのか、また問題と関連があるのかどうかは理解できません。おそらく、より知識のあるメンバーの方が詳しく調査できるでしょう。