Не удается сохранить категорию/теги по умолчанию

Создал отдельную тему для этой проблемы. Я нахожусь на ветке tests-passed — уже выполнил пересборку. В безопасном режиме проблема сохраняется.
(2cb805a683)

Анонимизированный лог ошибок: TypeError: Cannot read property 'categories' of undefined at https://domain - Pastebin.com

Шаги для воспроизведения? При выборе категории по умолчанию для отслеживания и нажатии зелёной кнопки ничего не происходит. Красный крестик отменяет действие, а зелёная галочка не делает ничего (должно появиться окно с вопросом, хочу ли я применить это к старым пользователям; на другом форуме, который я установил, это работает).

Редактирование: Более понятный заголовок

Это не решение и не тот случай.

Обновлю ситуацию по моему случаю: сделал чистую установку на новом сервере, и всё работает — я могу включить настройку без проблем. Восстановил резервную копию с моего продакшн-сайта, и та же проблема появилась. Я совершенно не в курсе, что произошло; это была чистая установка всего два дня назад, и я не понимаю, что сделал не так.

Если кто-то из команды захочет лично проверить проблему, я могу предоставить доступ администратора к моему тестовому сайту, и вы сможете сделать всё необходимое для диагностики.

Вы выполняли импорт с хоста с другим именем хоста и восстанавливали его на этом сервере?

Да. Если быть конкретным, я настроил сервер для тестирования на stage1.domain.com, выполнил первоначальную настройку, включил восстановление, загрузил это через веб-интерфейс и восстановил.

Но позвольте спросить по-другому: должно ли имя хоста в файле /etc/hosts точно совпадать с именем хоста в моем файле app.yml для Discourse?

И как это связано с именем хоста, которое я изначально настроил в DO, и с именем, которое имеет этот дроплет внутри DO?

Нет, имя хоста в файле /etc/hosts не имеет значения. Если бы это было важно, вас бы попросили подтвердить его в руководстве по установке.

Руководство, на которое дал ссылку Джей, содержит все необходимые шаги для изменения доменного имени.

Вы оба читали эту тему? Она не связана со сменой домена, и меня очень раздражает, когда люди просто кидают мне какие-то ссылки. Я знаю это руководство. Почему все продолжают на него ссылаться? Это не проблема, мой сайт работает нормально, за исключением этого бага.

Чувствую, что после двух дней я остаюсь в неведении из-за этой безумной проблемы. Пожалуйста, прочитайте исходное сообщение ещё раз. Я НЕ МОГУ СОХРАНИТЬ НАСТРОЙКИ ПО УМОЛЧАНИЮ ДЛЯ ОТСЛЕЖИВАНИЯ — имя хоста не имеет к этому отношения и указано верно, поэтому мне снова не нужно это руководство.

Разве здесь нет никого из команды? Установить это менее чем за 30 минут — это здорово, но как только возникают проблемы, я замечаю, что многие темы на форуме остаются открытыми и нерешёнными. Начинаю думать, что хостить это самостоятельно было ошибкой.

Значит, работает.

Пока вы не восстановите резервную копию.

Это говорит о том, что с восстановленными данными что-то не так. Мы предложили решение, но вы мало рассказали о том, как создавали данные, поэтому наше предложение может быть неверным.

Да. Это их работа, поэтому они, скорее всего, не появятся до понедельника.

К какому решению вы ссылаетесь? На данный момент я выполнил множество установок согласно руководствам, и имя хоста указано верно. Моё предложение насчёт файла etc/hosts было лишь предположением о возможной проблеме, но теперь я знаю, что оно не имеет к этому никакого отношения. Так что да, можно утверждать, что проблема в моей резервной копии или базе данных.

Однако я ничего необычного не делал. Мой форум запустился, пользователи начали регистрироваться — я никогда не вмешивался в свою базу данных. Это полностью сбивает меня с толку, и я не понимаю, как решить эту проблему.

Можете ли вы подсказать, что именно вам нужно, чтобы помочь мне её решить? Я предоставил ссылку на pastebin в первом посте с моим журналом ошибок. Это поможет?

Как я создал данные для восстановления. На самом деле это просто база данных возрастом два дня, созданная с нуля.

  1. Резервная копия, сделанная на продакшн-сайте.
  2. Загрузка файла tar.gz по ссылке из письма.
  3. Настройка среды staging на новом Droplet от DigitalOcean.
  4. Включение возможности восстановления в настройках и восстановление через административный интерфейс.

Эта проблема должна быть исправлена,

Именно так я и думал и надеялся, увидев этот коммит. На недавно настроенном тестовом сайте действительно есть эта новая сборка, но проблема всё ещё сохраняется..

Редактирование: в моей тестовой среде на самом деле есть обновление — сейчас устанавливаю и отчитаюсь.

Редактирование 2: @dax Я могу подтвердить, что обновил свой домен stage1, но проблема осталась прежней.
Установлено
2.4.0.beta6
(6f6a02645c)

Вы не против немного отладить? Я не могу воспроизвести вашу ошибку, а так как система работает в продакшене, ваших логов пока недостаточно.

Что вы можете сделать:

  • откройте консоль разработчика в Chrome (это можно сделать и в других браузерах, но я лучше знаком с Chrome);
  • выполните действие, вызывающее проблему;
  • скопируйте первую строку стека, которая в вашем pastbin выглядела бы так: 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.

Edit2: Я только что выяснил, что также не могу сохранить следующие настройки:

После каждого коммита я продолжал пытаться.

Только что сделал пересборку, потому что хотел установить плагин для отпечатков. Не знаю, исправили ли вы это или произошло какое-то чудо? Но… я наконец-то смог сохранить настройки по умолчанию для наблюдения. Спасибо!

Исправлено в коммите