ユーザーメッセージ受信トレイ エラー 500

これはセキュアなアップロードの場合にのみ呼び出されます。私の推測では、過去に設定していたものが、今回削除されたためではないでしょうか。

これは何を返しますか?

./launcher enter app
rails c
> Upload.where('secure').count

cc @martin

(また、site_setting.rb:157:in absolute_base_url' には命名のバグがあります。s3_absolute_base_url と呼ぶべきです)

「いいね!」 1

こんにちは、サムさん。

ご確認いただき、ありがとうございます!

私の知る限り、セキュアアップロード機能は有効にしていませんでした。ただし、私だけが管理者ではないため、確信は持てません。私の理解が正しければ、その機能が一度も有効化されていない場合、カウントは 0 を返すはずです。しかし、実際には 0 よりもはるかに多い値、つまり 235 になっていますね :blush:

このコマンドを実行すると、以下の結果が返されます。

[1] pry(main)> Upload.where('secure').count
=> 235
[2] pry(main)> 

これを修正するために何かできることはありますか?

seucure media allow embeded images in emails(セキュアメディア:メールへの埋め込み画像を許可)設定を無効にするべきでしょうか?

あるいは、secure media(セキュアメディア)を一時的に有効化してから再度無効化してみる価値はありますか?

お手伝いいただき、本当にありがとうございます!

「いいね!」 1

現在、セキュアメディアが有効になっていない場合は、有効にする必要はありません。セキュアなアップロードの数から見て、過去に一度は有効になっていたはずです。uploads:secure_upload_analyse_and_update Rake タスクを実行してみてください。これにより、すべてのアップロードがサイト設定に基づいて「セキュア」または「非セキュア」としてマークされます(セキュアメディアが無効になっている場合、すべて「非セキュア」としてマークされます)。

「いいね!」 4

やあ、マーティンさん、

ありがとうございます。今夜試してみます。

確認させてください。現在、以下のオプションが有効になっています。

このオプションも切り替えるべきでしょうか?それとも、マーキングプロセスには影響しないのでしょうか?

念のため確認ですが、rake コマンドを実行した後、アプリを再ビルドする必要がありますか?それとも必須ではないが、推奨されるだけでしょうか?

ありがとうございます!

このオプションはデフォルトで有効になっていますが、Secure Media が有効になっていない限り機能しません。

再ビルドは不要だと思います。私は本番環境のサイトでも問題なく実行しています。

「いいね!」 1

ありがとうございます!

試してみますので、明日報告します。

サンキューサンキュー!

「いいね!」 1

推測になりますが、バックトレースを見ると、メッセージのリスト、あるいはメッセージからの情報のリストをシリアライズしようとしており、特定の画像のシリアライズ時に失敗しているようです。その画像はおそらくユーザーのプロフィール画像でしょう。影響を受けているのは1つのアカウントのみなので、その画像が、この影響を受けたアカウントとしか通信していないユーザーのものである可能性があります。

失敗しているリストの構築は、直近のN件のメッセージを対象としているかもしれません。もし可能であれば、その影響を受けたアカウントに対してN件のメッセージ(異なるトピックタイトルを持つもの)を送信してみてください。そうすれば、リストには正常なメッセージのみが含まれるようになります。

「いいね!」 4

マーティン、ヒントをありがとう。

さて、rake uploads:secure_upload_analyse_and_update を実行してみましたが、出力は以下の通りでした。

このタスクは外部ストレージでのみ機能します。

そのため、「secure media」オプションを有効にしようと試みました。しかし、残念ながら、あるいは管理者エラーを防ぐためと言えましょうか、このオプションは Amazon S3 バケットを設定することでのみ有効化できます。そして、これまでに誰も S3 設定を行ったことがないと確信しています。

したがって、S3 ストレージが利用できないため、rake スクリプトを実行することができません。そのため、pry(main)> Upload.where('secure').count に影響があるかどうかを判断することもできません。

S3 が有効化されたことがないのに、なぜまだ一部のセキュアなアップロードが存在するのか疑問に思います。

何か手がかりはありますか?

しかし、実際には

これが功を奏しました。なので、現時点では問題ありません。なぜこのような動作が発生しているのかについてはまだわかりませんが、他に考えられる理由があれば教えていただければ幸いです。

あらかじめ感謝申し上げます。また、これまでに費やしてくださった時間にも感謝します。

さて、Ed_S さん、他に何と言おうか…

心から感謝します

実際、あなたの小さなヒントが解決策になりました。新しいメッセージを 1 つ書き、別の回答を投稿すると、エラーが消えました。

今すぐヒーローだとしても、今後の質問からは逃れられませんよ ;-)。ここで一体何が起きたのか、もう少し詳しく教えていただけないでしょうか。

まず、ログの読み方をより理解したいのです。あなたの推測は本当に素晴らしいものでした。なぜ「シリアライゼーション問題」が原因だと考えたのでしょうか?

lib/url_helper.rb:90:in `cook_url'
app/models/topic.rb:126:in `image_url'
app/serializers/listable_topic_serializer.rb:34:in `image_url'

なぜ cook_url ではなく、あるいは他の何かではなく、この部分なのでしょうか?

次に、あなたの経験則について教えていただけますか?このような問題に再び遭遇しないように注意すべき点はありますか?あるいは他のユーザーに関連する問題かもしれません。

どのメッセージ、ユーザー、画像が悪者なのかを特定する方法はあると思いますか?メッセージを一つずつクリックして、プライベートメッセージの投稿に効果があるかどうかを期待する以外に、何か他の方法はないでしょうか。

面白いことに、いくつかの管理者は全く同じことをしました。影響を受けたアカウントに新しいメッセージ(トピック)を投稿しましたが、他の挙動の変化は観察されませんでした。どうやら、私が影響を受けたアカウントに最後に送信したメッセージが解決策になったようです。

最後に、緊急時の連絡用に電話番号をいただけますか?冗談ですよ!:wink:

しかし、真面目に、本当に、本当に、本当にありがとうございます。ここで完全に詰まっていましたが、私たちのユーザー(前述の通り、管理者の一人)が再び軌道に乗れてとても嬉しいです。Ed_S さん、ありがとうございます!

「いいね!」 2

:clap:
素晴らしい推測ですね!

「いいね!」 1

ハハ、ラッキーでしたね。スタックトレースの特徴は、具体的な部分から一般的な部分へと遡る点です。単なる事項の羅列ではなく、一般的なコードから特定のメカニズムに至るまでのネストされた相互作用を視覚化したようなものです。そのため、メッセージ一覧にはプロフィール画像しか表示されないという点から、「画像」という考え方が興味深く思えました。以前もプロフィール画像に関連する奇妙な問題を目にしたことがあります。

しかし、あなたがセキュアストレージを一度も使ったことがないのに、なぜコードがそれを参照しているのか、私にはわかりません。

データベースクエリを実行すれば、このケースで取得される画像の一覧が得られるかもしれませんが、問題のあるプロフィールを特定する方法はわかりません。少なくとも、これがスタックトレースの背景にある話だと仮定すればの話ですが。

「いいね!」 2

これを修正するための rake タスクがあります。

./launcher enter app
rake uploads:secure_upload_analyse_and_update

そのタスクを実行することをお勧めします。

「いいね!」 1

こんにちは、サムさん。

まだリストに残してくださっていることに心から感謝しています。これを正しく進めるためのさらなるサポートが得られてとても嬉しいです。

さて、私は以下を試しました。

しかし、実際には同じ出力が表示され、これは外部 S3 ストレージでのみ機能し、外部 S3 ストレージが設定されていない限り機能しないとのことでした。そのため、私は少し行き詰まっています。

私のコンソール出力は以下の通りです:

./launcher enter app
rake uploads:secure_upload_analyse_and_update
This task only works for external storage.

何か見落としているのでしょうか?それともバグでしょうか?secure media をオフにしても実行されるべきではないでしょうか?

ご専門知識をお貸しいただき、ありがとうございます。

「いいね!」 1

実は、私たちが生き延びられるのは時として運のおかげですよね?

それでもありがとうございます。少しイライラしてしまい、すべてのメッセージを削除するのは本当に最後の手段でした。

さて、もしかしたらトピックについて何かヒントをいただけますか?Docker と Discourse については比較的初心者なので、データベースクエリを実行するように言われて少し困惑しています。Discourse が使用するデータベースは何ですか?以下のようなことはできますか?

./launcher enter app
mysql select bla

それとも MongoDB でしょうか?しかし、コンテナ内でクエリを実行するのは少なくとも正しいアプローチですよね?

また、フィールドやプロパティの一覧のような参照資料はありますか?適切なクエリを考え出すためにそれらを閲覧したいのですが。

ただ、これを明確にしておきたいのですが、もし受信トレイの一覧からプロフィール画像のリストを取得できたとしても、どの画像が「悪いやつ」なのかを絞り込む提案や、それを見つけた場合の対処法についての提案はまだないですよね?それについて何か考えはありますか?

さらに、プロフィール画像に一般的な問題があることに驚いています。それについてより深く理解するために読める特定のトピックはありますか?あるいは、プロフィール画像の扱い方や使用制限、あるいはそのような問題を回避するためのガイドのようなものはありますか?

Ed_S さん、最後まで付き合ってくれて本当にありがとうございます。

データベースの側面についてはあまり詳しくありませんが、公式にサポートされている Data Explorer プラグイン と、このトピック をお勧めします。(新しい質問がある場合は、新しいトピックを開始するのが最善です。他の人もスレッドから恩恵を受けることができますし、適切なトピックタイトルはより多くの助けをもたらします。)

編集:また、以下のリンクも参照してください。

ここでは、仕組みがどのようなものか、どのようにクエリを実行できるかについてのヒントが得られます。

「いいね!」 1

Ed_S さん、こんにちは。

ヒントをどうもありがとうございます。Data Explorer プラグインは素晴らしいですね!さらに分析を進めるには、まさに最適な出発点です!

失われたアバターに関するヒントも役立ちました。確認してみたところ、問題なさそうでしたので、洞察を共有してくださって本当にありがとうございます。

今のところうまくいっているので、とても満足しています。この状態が続くことを願っています :wink:
引き続きご支援いただき、Ed_S さん、改めてありがとうございます。

もし他の誰かが同様のエラーに遭遇した場合は、どのような経験をしたか、あるいはこのようなエラーを防ぐために何ができるかについて、お知らせください。

読んでいただき、皆様ありがとうございました。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.