Невозможно редактировать группы тегов в категории

При попытке управлять группой тегов в рамках категории появляется всплывающее окно с общей ошибкой «Internal Server Error».

Управление тегами в категории работает, и редактирование групп тегов в админ-панели также проходит без проблем.

Ошибка возникает только в рамках ЛЮБОЙ категории: если нажать на ключ, затем выбрать «Теги», то при попытке выбрать группу тегов в одном из следующих разделов появляется ошибка:

Ограничить эти группы тегов данной категорией:
или
Требовать, чтобы новые темы имели теги из групп тегов:
+ Добавить обязательную группу тегов

Не совсем понятно, где искать логи этой ошибки.

Мы планируем запустить этот форум в ближайшие несколько дней, поэтому буду крайне признателен, если кто-то поможет устранить эту проблему до запуска.
Нам действительно необходимо иметь возможность требовать определённые теги в конкретной категории до релиза.

2 лайка

Извините, что у вас возникла эта проблема. :grimacing:

Когда вы пытаетесь выполнить эти действия с открытой консолью JavaScript, видите ли вы какие-либо дополнительные сообщения об ошибках, которые могли бы помочь в устранении неполадок?

Я только что попробовал и не смог воспроизвести проблему. Всё сохраняется корректно.

Можете ли вы предоставить скриншот страницы «Редактирование группы тегов» для группы тегов, которую вы пытаетесь использовать в своей категории? Возможно, права доступа не совпадают?

Я получаю:
Не удалось загрузить ресурс: сервер ответил со статусом 500 () ... https://connect.checkinpos.com/tag_groups/filter/search?q=&limit=3

У меня есть три доступные группы тегов, но дело даже не доходит до отображения доступных групп. Всплывающее окно появляется сразу после нажатия на кнопку.

Вы пробовали это в безопасном режиме? Возможно, какой-то плагин или компонент мешает?

Вы обновились до последней версии Discourse?

Да, я только что обновил это сегодня утром. Возможно, это что-то сломало.
Я не знал, что у Discourse есть безопасный режим, подождите…

Да, проблема всё ещё сохраняется в безопасном режиме.

1 лайк

Что-нибудь в /logs?

2

[DiscourseJsProcessor] УСТАРЕЛО: Свойство parts в узлах путей устарело, используйте head и tail вместо этого
2 июня, 14:27

Исключение в задаче: Неподдерживаемый тип аргумента команды: FalseClass
Пн, 13:47

Исключение в задаче: Неподдерживаемый тип аргумента команды: FalseClass
Пн, 15:10

RuntimeError (по умолчанию :limit не находится в диапазоне от 0 до 3) app/controllers/application_controller.rb:1027:in `fetch_int_from_params' app/controllers/application_controller.rb:1020:in `fetch_limit_from_param'
9:24
4

[DiscourseJsProcessor] УСТАРЕЛО: Свойство parts в узлах путей устарело, используйте head и tail вместо этого
9:33
2

[DiscourseJsProcessor] УСТАРЕЛО: Свойство parts в узлах путей устарело, используйте head и tail вместо этого
9:33
16

RuntimeError (по умолчанию :limit не находится в диапазоне от 0 до 3) app/controllers/application_controller.rb:1025:in `fetch_int_from_params' app/controllers/application_controller.rb:1018:in `fetch_limit_from_param'

Сложная задача: помочь вам устранить неполадки с помощью шагов воспроизведения на другом сайте, помимо вашего.

Попробуйте удалить группы тегов и создать их заново?

Я попробую это сделать чуть позже. Другие группы уже назначены на разные категории и продолжают работать, поэтому я беспокоюсь, что не смогу переназначить их после удаления и восстановления.

Можешь откатиться на более раннюю версию Discourse? Я сделал резервную копию прямо перед обновлением сегодня утром.

Не могли бы вы сообщить, изменили ли вы настройку сайта max_tag_search_results?

2 лайка

Да, установлено значение 3.

1 лайк

Я могу воспроизвести проблему, просто изменив настройку на моём сайте на 3. Не могли бы вы попробовать вернуть её обратно на 5?

2 лайка

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

2 лайка

Да, вы обнаружили ошибку! :clap: Спасибо за настойчивость в выяснении причин.

Отличная работа по нахождению шагов воспроизведения, @moin! :clap: :clap:

Мы разберёмся с этим.

1 лайк

Рад, что смог помочь, но я просто сделал то, что мне сказали более умные люди… :slight_smile:

1 лайк

Предоставленный вами лог помог мне найти проблему.

Я поискал fetch_limit_from_param в коде и нашёл строку в контроллере групп тегов, которая ссылается на этот параметр.

полное сообщение и стек вызовов из логов
Сообщение

RuntimeError (default :limit is not between 0 and 3)
app/controllers/application_controller.rb:1025:in `fetch_int_from_params'
app/controllers/application_controller.rb:1018:in `fetch_limit_from_params'
app/controllers/tag_groups_controller.rb:95:in `search'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'


Стек вызовов

app/controllers/application_controller.rb:1025:in `fetch_int_from_params'
app/controllers/application_controller.rb:1018:in `fetch_limit_from_params'
app/controllers/tag_groups_controller.rb:95:in `search'
actionpack (7.2.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (7.2.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:76:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.2.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (7.2.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack (7.2.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (7.2.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:896:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.13) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.13) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.13) lib/rack/head.rb:12:in `call'
actionpack (7.2.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.13) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.13) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
lograge (0.14.0) lib/lograge/rails_ext/rack/logger.rb:18:in `call_app'
railties (7.2.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/request_id.rb:33:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.13) lib/rack/method_override.rb:24:in `call'
rack (2.2.13) lib/rack/sendfile.rb:110:in `call'
plugins/discourse-prometheus/lib/middleware/metrics.rb:14:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:385:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
rails_failover (2.2.0) lib/rails_failover/active_record/middleware.rb:67:in `block in call'
activerecord (7.2.2.1) lib/active_record/connection_handling.rb:376:in `with_role_and_shard'
activerecord (7.2.2.1) lib/active_record/connection_handling.rb:147:in `connected_to'
rails_failover (2.2.0) lib/rails_failover/active_record/middleware.rb:64:in `call'
rails_multisite (6.1.0) lib/rails_multisite/middleware.rb:26:in `call'
railties (7.2.2.1) lib/rails/engine.rb:535:in `call'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.13) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.13) lib/rack/urlmap.rb:58:in `each'
rack (2.2.13) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
3 лайка

Это исправлено :tada:

4 лайка