デフォルトの監視カテゴリ/タグを保存できない

この問題について別のトピックを作成しました。私は tests-passed ブランチにいて、すでに再ビルドを行いました。セーフモードでも問題は解消されません。
(2cb805a683)

匿名化されたエラーログ: TypeError: Cannot read property 'categories' of undefined at https://domain - Pastebin.com

再現手順は?カテゴリをデフォルトのウォッチ対象として選択し、緑色のボタンを押しても何も起こりません。赤い×印は元に戻す操作になり、緑色のチェックマークは何も実行されません(古いユーザーに適用するかどうかを尋ねるべきですが、私がインストールした別のフォーラムでは正常に動作します)。

編集:タイトルをより明確にしました

これは解決策でもなく、事案そのものでもありません。

私の事案を更新します:新しいサーバーにクリーンインストールを行ったところ、問題なく設定を有効化できました。しかし、本番サイトからのバックアップを復元すると、同じ問題が発生します。全く見当がつかず、2日前にクリーンインストールを行ったばかりで、何が悪かったのか分かりません。

もしチームの誰かが直接この問題を確認したい場合は、ステージングサイトの管理者ログイン情報を提供できますので、問題調査のために必要なことは何でも行ってください。

別のホスト名を持つホストでインポートを行い、その後このサーバーに復元しましたか?

はい。具体的には、stage1.domain.com にステージングサーバーをセットアップし、初期設定を実行してリカバリを有効にし、Web インターフェースからファイルをアップロードして復元しました。

ただし、以下のように質問させてください:/etc/hosts に記載されたホスト名は、Discourse の app.yml ファイル内のホスト名と完全に一致する必要がありますか?

また、これは DO で最初に設定したホスト名や、DO 内のドロプレットに付けられた名前とどのように関連しているのでしょうか?

いいえ、/etc/hosts のホスト名は問題になりません。もし重要であれば、インストールガイドで確認を求められるはずです。

ジェイがリンクしたガイドには、ドメイン名の変更に必要な手順がすべて記載されています。

皆さんはこの問題について既にお読みになりましたか?これはドメインの変更とは無関係で、単にURLを投げつけられるのを見るのは本当に腹が立ちます。私はガイドを知っています。なぜ皆がこのガイドを繰り返し参照するのでしょうか?これが問題ではないのです。私のサイトはバグを除いて正常に動作しています。

この奇妙な問題について2日間も放置され、完全に手探りの状態に置かれているような気分です。もう一度最初の投稿(OP)をお読みください。デフォルトの「ウォッチ済み」設定を保存できません。ホスト名は無関係で正しいので、あのガイドは再度必要ありません。

チームの誰かはこちらにいますか?30分未満でインストールするのはとても素晴らしいですが、問題が発生するとすぐに、多くのフォーラムトピックが未解決のまま放置されていることに気づきました。自分でホストするのは間違いだったのではと感じ始めています。

つまり、動作するのですね。

バックアップを復元するまでですね。

これは、復元したデータに何らかの問題があることを示唆しています。私たちは解決策を提案しましたが、データ作成方法について詳しく説明されなかったため、私たちの提案が誤っている可能性もあります。

はい、います。彼らの仕事ですので、月曜日までには戻らないでしょう。

どの解決策のことをおっしゃっているのでしょうか?現時点では、ガイドに従って多くのインストールを行っており、ホスト名も正しいです。私の /etc/hosts に関する提案は、単なる可能性のある問題でしたが、現在はそれが原因ではないことがわかりました。したがって、確かにこれは私のバックアップまたはデータベース内にあると言えます。

しかし、私は何も奇妙なことはしていません。私のフォーラムが立ち上がり、ユーザーが登録しました。私はデータベースをいじったことはありません。そのため、この問題を解決する方法について全く見当がつきません。

この問題を解決するために何が必要か教えていただけますか?私は最初の投稿(OP)にエラーログの Pastebin リンクを提供しました。これは役立ちますか?

復元データの作成方法について説明します。データは実際には、ゼロから作成されたわずか 2 日前のデータベースです。

  1. 本番サイトで作成したバックアップ
  2. メールで送られた URL を通じて tar.gz ファイルをダウンロード
  3. 新しい DO ドロップレットにステージング環境をセットアップ
  4. 設定で復元を許可し、管理画面から復元を実行

この問題は修正されました。

そのコミットを見たとき、私もそう思い、そう願っていました。新しくセットアップされたステージングサイトには実際にはこの新しいビルドが含まれていますが、問題は依然として存在しています。

編集:私のステージング環境は実際にはアップグレード済みです。現在インストール中ですので、後で報告します。

編集2:@dax 確認できましたが、stage1 ドメインをアップデートしても同じ問題が発生しています。
インストール済み
2.4.0.beta6
(6f6a02645c)

デバッグを手伝っていただけますか?あなたのエラーを再現できず、本番環境のため現在のところログだけでは情報が不足しています。

以下の手順を試してみてください:

  • Chrome 開発者コンソールを開く(Chrome 以外のブラウザでも可能ですが、私が最も慣れているのは Chrome です)
  • 問題が発生する操作を行う
  • 過去に貼り付けたログのスタックの最初の行をコピーする(例:https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519
  • cmd + shift + p を押す(Windows の場合は不明ですが、おそらくこれに近いキー操作です)
  • > を削除し、https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 を貼り付けてファイルを検索し、クリックしてください
  • 左下の {} アイコンをクリックするとコードが表示されますので、そのブロックをここにコピー&ペーストしてください

(場合によっては、コンソール上の https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 がクリック可能で、そのままクリックして {} を押すだけで整形されたコードが表示されることもあります)

@j.jaffeux ご指示の手順は実行できましたが、残念ながらそのリンクをクリック(または検索)するとファイルに飛びますが、中身が空です。

よろしければ、私のステージング環境の詳細をお伝えしますので、テストを行ってください。(オンライン環境です)

ステージング環境でも再現可能であれば、詳細をメッセージでお知らせください。

はい、このコードブロックで問題が発生しています:

define("discourse/routes/about", ["exports", "discourse/lib/ajax", "discourse/routes/discourse"], function(e, t, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }),
    e.default = n.default.extend({
        model: function() {
            var o = this;
            return (0,
            t.ajax)("/about.json").then(function(i) {
                var t = []
                  , n = []
                  , s = moment().locale("en").utc().subtract(1, "year");
                i.about.admins.forEach(function(e) {
                    moment(e.last_seen_at) > s && t.push(e)
                }),
                i.about.moderators.forEach(function(e) {
                    moment(e.last_seen_at) > s && n.push(e)
                }),
                i.about.admins = t,
                i.about.moderators = n;
                var e = i.about.category_moderators;
                return e && e.length && e.forEach(function(e, t) {
                    var n = o.site.categories.findBy("id", e.category_id);
                    i.about.category_moderators[t].category = n
                }),
                i.about
            })
        },
        titleToken: function() {
            return I18n.t("about.simple_title")
        },
        actions: {
            didTransition: function() {
                return this.controllerFor("application").set("showFooter", !0),
                !0
            }
        }
    })
})

このコードは以下のソースにあります:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/routes/about.js.es6#L25

現時点では、このアクションがどのように影響しているかはわかりません。明日詳しく調べてみます。

ご確認いただきありがとうございます。私のフォーラムはこの問題以外は何も問題なく動作していますので、急ぐ必要はありません。日曜日の夜ですので、お楽しみください。問題の確認をありがとうございました。

2.4.0beta7 でも問題が継続しています。

編集2: 以下の設定も保存できないことがわかりました。

コミットするたびに試していました。

指紋認証プラグインをインストールしたかったので、再ビルドを行いました。皆さんが修正されたのか、それとも何か魔法が起きたのかはわかりませんが…ついにデフォルトの監視設定を保存できるようになりました。ありがとうございます!

コミットで修正されました