Discourse 2.8.4 NoMethodError: не определен метод `min_tags_from_required_group`

Здравствуйте

У меня возникла проблема с версией Discourse 2.8.4. Появляется следующая ошибка. Спасибо за всю помощь!

discourse 10:20:36.33 INFO  ==> ** Запуск Discourse **
=============== Запущен автономный веб-сервер Phusion Passenger(R) ===============
Файл PID: /opt/bitnami/discourse/passenger.8085.pid
Файл журнала: /opt/bitnami/discourse/log/passenger.8085.log
Окружение: production
Доступно по адресу: http://0.0.0.0:8085/

Вы можете остановить автономный Phusion Passenger(R), нажав Ctrl-C.
Возникли проблемы? Проверьте https://www.phusionpassenger.com/library/admin/standalone/troubleshooting/
===============================================================================
[ N 2023-10-19 10:20:39.6128 573/T5 age/Cor/SecurityUpdateChecker.h:519 ]: Проверка обновления безопасности: обновление не найдено (следующая проверка через 24 часа)
Начат HEAD запрос "/" для 127.0.0.1 в 2023-10-19 10:20:57 +0000
Обработка ListController#latest как HTML
  Отрендерен exceptions/not_found.html.erb внутри layouts/application (Длительность: 201.0мс | Выделения: 11288)
  Отрендерен макет layouts/application.html.erb (Длительность: 890.7мс | Выделения: 131052)
  Отрендерен html шаблон (Длительность: 0.1мс | Выделения: 2)
Завершено с кодом 403 Forbidden за 1407мс (Views: 1.5мс | ActiveRecord: 0.0мс | Выделения: 213808)
Начат GET запрос "/" для 51.210.159.157 в 2023-10-19 10:25:14 +0000
Обработка ListController#latest как HTML
Завершено с кодом 500 Internal Server Error за 815мс (ActiveRecord: 0.0мс | Выделения: 77957)
NoMethodError (метод `min_tags_from_required_group` не определен для #<Category:0x000055d0dea2b8b8>)
(eval):36:in `_fast_attributes'
app/models/site.rb:70:in `block in all_categories_cache'
lib/cache.rb:94:in `fetch'
app/models/site.rb:52:in `all_categories_cache'
app/models/site.rb:78:in `categories'
app/serializers/site_serializer.rb:203:in `categories'
(eval):32:in `_fast_attributes'
app/models/site.rb:167:in `json_for'
app/controllers/application_controller.rb:595:in `preload_anonymous_data'
app/controllers/application_controller.rb:407:in `preload_json'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:361:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Привет :slight_smile:

Ваша установка устарела. Вам следует обновить ваш экземпляр и проверить, сохраняется ли проблема.

Спасибо за ваш ответ. Я обновился до версии 3.1.2, но страница, отображаемая в браузере, пустая. Примечание: установка выполнена в среде Kubernetes. Вот лог:

discourse 14:24:20.30 INFO  ==> ** Запуск Discourse **
=============== Запуск автономного веб-сервера Phusion Passenger(R) ===============
Файл PID: /opt/bitnami/discourse/passenger.8080.pid
Файл лога: /opt/bitnami/discourse/log/passenger.8080.log
Окружение: production
Доступно по адресу: http://0.0.0.0:8080/

Вы можете остановить автономный сервер Phusion Passenger(R), нажав Ctrl-C.
Возникли проблемы? Проверьте: https://www.phusionpassenger.com/library/admin/standalone/troubleshooting/
===============================================================================
[ N 2023-10-19 14:24:23.0045 875/T5 age/Cor/SecurityUpdateChecker.h:519 ]: Проверка наличия обновлений безопасности: обновление не найдено (следующая проверка через 24 часа)
Запущен HEAD "/" для 127.0.0.1 в 2023-10-19 14:24:29 +0000
Обработка запроса ListController#latest как HTML
  Отрендерен exceptions/not_found.html.erb внутри layouts/no_ember (Длительность: 182.8 мс | Выделения памяти: 94576)
  Отрендерен макет layouts/no_ember.html.erb (Длительность: 313.7 мс | Выделения памяти: 150094)
  Отрендерен HTML-шаблон (Длительность: 0.0 мс | Выделения памяти: 7)
Завершено с кодом 403 Forbidden за 462 мс (Представления: 0.7 мс | ActiveRecord: 0.0 мс | Выделения памяти: 229600)
Запущен GET "/" для 10.2.2.0 в 2023-10-19 14:40:12 +0000
Обработка запроса ListController#latest как HTML
  Отрендерен list/list.erb внутри layouts/application (Длительность: 14.6 мс | Выделения памяти: 12112)
  Отрендерен макет layouts/application.html.erb (Длительность: 194.1 мс | Выделения памяти: 93857)
Завершено с кодом 200 OK за 730 мс (Представления: 196.6 мс | ActiveRecord: 0.0 мс | Выделения памяти: 288887)
Запущен GET "/extra-locales/overrides?v=284ac3c8dead8b93a53206ee318c7b3c" для 10.2.2.0 в 2023-10-19 14:40:13 +0000
Обработка запроса ExtraLocalesController#show как */*
  Параметры: {"v"=>"284ac3c8dead8b93a53206ee318c7b3c", "bundle"=>"overrides"}
  Отрендерен текстовый шаблон (Длительность: 0.0 мс | Выделения памяти: 1)
Завершено с кодом 200 OK за 17 мс (Представления: 1.7 мс | ActiveRecord: 0.0 мс | Выделения памяти: 2330)
[ N 2023-10-19 14:52:13.8628 875/T4 age/Cor/CoreMain.cpp:1146 ]: Проверка необходимости отключения долгоживущих соединений для процесса 1410, приложение /opt/bitnami/discourse (production)
Запущен GET "/admin" для 10.2.2.0 в 2023-10-19 14:53:21 +0000
Обработка запроса Admin::AdminController#index как HTML
  Отрендерен default/empty.html.erb внутри layouts/application (Длительность: 0.4 мс | Выделения памяти: 177)
  Отрендерен макет layouts/application.html.erb (Длительность: 479.1 мс | Выделения памяти: 182114)
Завершено с кодом 200 OK за 934 мс (Представления: 481.4 мс | ActiveRecord: 0.0 мс | Выделения памяти: 349246)
Запущен GET "/admin" для 10.2.3.0 в 2023-10-19 14:54:02 +0000
Обработка запроса Admin::AdminController#index как HTML
  Отрендерен default/empty.html.erb внутри layouts/application (Длительность: 0.0 мс | Выделения памяти: 11)
  Отрендерен макет layouts/application.html.erb (Длительность: 11.3 мс | Выделения памяти: 4650)
Завершено с кодом 200 OK за 109 мс (Представления: 12.1 мс | ActiveRecord: 0.0 мс | Выделения памяти: 19340)
Запущен GET "/extra-locales/wizard?v=c155b44f23dcee8a7513016ec793d055" для 10.2.3.0 в 2023-10-19 14:54:03 +0000
Обработка запроса ExtraLocalesController#show как */*
  Параметры: {"v"=>"c155b44f23dcee8a7513016ec793d055", "bundle"=>"wizard"}
Запущен GET "/extra-locales/admin?v=a43add616a42c5cead63cdd53b0dda4a" для 10.2.3.0 в 2023-10-19 14:54:03 +0000
Обработка запроса ExtraLocalesController#show как */*
  Параметры: {"v"=>"a43add616a42c5cead63cdd53b0dda4a", "bundle"=>"admin"}
  Отрендерен текстовый шаблон (Длительность: 0.0 мс | Выделения памяти: 1)
Завершено с кодом 200 OK за 173 мс (Представления: 3.3 мс | ActiveRecord: 0.0 мс | Выделения памяти: 12837)

Есть ли что-нибудь в консоли браузера?

Похоже, что виновником был плагин discourse-local-dates. Как только я его отключил, всё начало работать. Мне ещё предстоит разобраться, как вернуть этот плагин обратно.

Спасибо за вашу поддержку!

discourse-local-dates — это основной плагин, который поставляется с Discourse начиная с версии 2.0 :thinking:

Честно говоря, я немного растерян. Не знаю, что произошло: я выполнил обновление с помощью kubectl. Обновление потребовало использования более старой версии PostgreSQL (по умолчанию в последнем чарте установлена 16-я версия, что не подходит для Discourse 3.1.2). Ошибок не было, но появилась пустая страница. После того как я переместил discourse-local-dates, всё заработало, и в консоли браузера больше нет ошибок.

На данный момент у меня нет идей по решению проблемы…