freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午前 1:19
1
Discourse インスタンスを1週間ほど稼働させていますが、解決できない奇妙な症状がいくつかあります。その理由の一つは、ログに役立つ情報が全く表示されていないことです。
最も顕著な症状は、設定画面で設定を変更し、緑色のチェックマークをクリックすると、変更が受理され一見正常に見えることです。しかし、その後設定ページをリフレッシュすると、古い設定が表示されることもあれば、新しい設定が表示されることもあります。さらにリフレッシュを続けると、あるときは一方の設定が、別のときはもう一方の設定が表示されるようになります。
さらに悪いことに、これは設定画面自体だけでなく、サーバーの機能そのものが時折変化するようです。例えば、新しいロゴをアップロードしようとしても、古いロゴが表示されることもあれば、新しいロゴが表示されることもあります。
当然の疑問にお答えすると、私はロードバランサーの背後で複数のインスタンスを稼働させておらず、単一インスタンスのみです。
関連しているかは不明ですが、Discourse Math プラグインも正しくレンダリングされないことに気づきました。数式はプレビューでは正しく表示されますが、投稿すると JavaScript が含まれていないように見え、正しくレンダリングされません。数式の表示問題は最優先事項ではありませんが、何か手がかりになるかもしれないため、ここで言及しておきます。
ログはすべて正常に見えるため、どこから助けを求めてよいかわからず、本当に行き詰まっています。アイデアがあれば大変助かります。
これは深刻なインストールの破損を意味します。サードパーティ製プラグインをすべて削除して、再構築してください。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午前 2:49
3
試してみましたが、うまくいきませんでした。おそらく、インストール方法に何か問題があるのでしょう。
私も開発者ですが、このような問題を引き起こすインストール上の不具合について、何か心当たりはありますか?デバッグやトラブルシューティングのヒントをいただけますでしょうか?
インストール方法は、GitHubで提供されている公式ガイドを使用していますか?
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午前 3:19
5
当初、私はそのプロセスを採用していました。しかし残念ながら、私が利用可能なエンタープライズレベルの生産環境の多くは対応していません。多くのフレームワークは、コンテナの運用、起動、デプロイを行います。標準的なインストール手法の性質上、これらのツールや環境で作業することはできません。
そのため、標準的な Docker ベースのデプロイをサポートするあらゆる場所でインストールできるように、このプロセスを強化・修正しようとしています。この取り組みは概ね機能していますが、私が最初に投稿したバグに直面しており、解決に苦慮しています。
動作するようになったら、もちろん他の人のために公開します。Discourse が標準的な Docker をサポートするのを去年から待っていましたが、自分で貢献することにしました。あと一歩のところまで来ましたが、私よりも経験豊富な方から、どこを見ればよいか教えていただければ幸いです。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 12:22
6
お手伝いいただけませんか?どこを見ればよいか、どこをデバッグすればよいか、あるいはアイデアでも構いませんので、ご教示いただければ幸いです。
michaeld
(Michael - Communiteq)
2019 年 8 月 20 日午後 12:25
7
リクエストが正常に送信されていることは確かですか?開発者ツールのネットワークタブには何が表示されていますか?
おっしゃる動作は、JavaScript 側でエラーが発生している環境に典型的なものです。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 12:44
8
ありがとうございます、非常に役立つかもしれません。MathJax プラグインが sporadically に動作したり停止したりしていたことから、JavaScript に関連している可能性が高いと思われます。
キャッシュをクリアした後に設定を変更しようとして、ネットワークタブを監視しながら試してみました。設定を変更する前後にエラーは表示されませんでした(バグは発生していました)。
変更が全く反映されていないという考えが理にかなっていない理由の一つは、その挙動です。変更を加えてからページをリフレッシュすると、変更が元に戻ったように見えます。しかし、二度目の変更を試みずにリフレッシュを繰り返すと、約半数のケースで変更が反映されます。リフレッシュのたびに、古い設定が表示されるか新しい設定が表示されるかの確率は約 50% です。
また、コンソールに以下のエラーが見つかりましたが、これは無関係だと思われます。
Could not find widget actions-summary-item in registry
michaeld
(Michael - Communiteq)
2019 年 8 月 20 日午後 12:51
9
すべてのプラグインを素早く無効にするには、セーフモードを試してみてください。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 1:00
11
以前と同じように試してみましたが、解決しませんでした。しかし、本当にセーフモードになっていたのか疑問です。*/safe-mode にアクセスしてセーフモードに入るダイアログが表示され、承諾しました。しかし、気づいたのは、私が使用しているマテリアルデザインテーマがまだ表示されていたことです。セーフモードにいると思っていたかもしれませんが、実際にはそうではなかったのかもしれません。
いずれにせよ、バグは継続しました。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 1:01
13
2つのコンテナ、Sidekiq用とDiscourseコア用。ペアは1つのインスタンスのみ。PostgresとRedisは別々のマシンでホストサービスとして実行しています。
pfaffman
(Jay Pfaffman)
2019 年 8 月 20 日午後 1:04
14
おっと、すいません。それはすでに回答済みの当然の質問でしたね。
編集:これも違うかもしれませんが、以前、別のプロセスで使用されている Redis データベースで似たような問題に遭遇したことがあります。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 1:13
15
セーフモードが機能しなかった理由に気づいたと思います。リフレッシュすると無効になっていたのです。
セーフモードでテストしましたが、問題は依然として続いています。
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 1:22
17
意味するところによります。デバッグ用の「Inspect」のネットワークタブではすべて 200 として表示され、コンソールには前述のエラーのみが表示されています(おそらく無関係でしょう)。Docker ログでは、設定を変更しようとした際に以下のような成功を示すログが確認できます。しかし、設定ページをリフレッシュすると、50% の確率で「ld」設定が表示され、残りの 50% では新しい設定が表示されます。
Stephen
(Stephen)
2019 年 8 月 20 日午後 1:23
18
では、どのようにインストールされましたか?標準インストールを使用していない場合、どのインストール方法とパッケージを使用されていますか?
freemo
(Jeffrey Phillips Freeman)
2019 年 8 月 20 日午後 1:27
20
標準的なインストール手順は使用していませんが、学習のためのガイドとして参照しました。Docker Compose と連携させるために、Docker ファイルをほぼ新規作成・修正する必要がありました。その後、ローカル環境で Docker Compose が動作するようになったら、それを JSON 形式に変換し、AWS CLI ツールで使用できるようにしました。
したがって、このインストール手順は標準的なものからかなり変更されています。