Obtenez une erreur oops 500 lors de l'installation du plugin question answer

Salut, j’ai rencontré le même problème lors de l’installation du plugin QA Pavilion et je l’ai signalé dans Oops après la mise à jour vers discouse 2.9 en raison du plugin Discourse QA - support - Discourse Meta.
J’ai essayé d’installer le plugin QA de discourse dans tests-passed (2.9.0.beta6) aujourd’hui, mais j’ai toujours le même problème.
Si je désactive le plugin QA, tout va bien.
J’ai également trouvé un message d’erreur similaire dans Erreur 500 lors de la sauvegarde des paramètres de sécurité des catégories - bug - Discourse Meta. Peut-être sont-ils pertinents ?

Message d’erreur de shared/standalone/log/rails/production.log

NoMethodError (undefined method `=>' for nil:NilClass)
(eval):78:in `_fast_attributes'
app/controllers/application_controller.rb:639:in `preload_current_user_data'
app/controllers/application_controller.rb:439:in `preload_json'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415: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:368: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:202:in `call'

et quelques captures d’écran de la page web

J’utilise le modèle suivant :

- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
- "templates/web.socketed.template.yml"
- "templates/cloudflare.template.yml"

et j’installe les plugins

- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-knowledge-explorer.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-rss-polling.git
- git clone https://github.com/discourse/discourse-feature-voting.git
- git clone https://github.com/discourse/discourse-math.git
- git clone https://github.com/discourse/discourse-checklist.git
- git clone https://github.com/discourse/discourse-question-answer.git

Mise à jour de la trace :

plugins/discourse-feature-voting/plugin.rb:162:in `reached_voting_limit?'
plugins/discourse-feature-voting/plugin.rb:175:in `votes_exceeded'
(eval):78:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.0.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:639:in `preload_current_user_data'
app/controllers/application_controller.rb:439:in `preload_json'
activesupport (7.0.3) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (7.0.3) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `each'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `invoke_before'
activesupport (7.0.3) lib/active_support/callbacks.rb:116:in `block in run_callbacks'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
i18n (1.10.0) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (7.0.3) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3.1) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3.1) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3.1) lib/rack/head.rb:12:in `call'
actionpack (7.0.3) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
rack (2.2.3.1) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3.1) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/cookies.rb:697:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.3) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
logster (2.11.2) lib/logster/middleware/reporter.rb:43:in `call'
railties (7.0.3) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.3) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3.1) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3.1) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (4.2.0) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:202:in `call'
railties (7.0.3) lib/rails/engine.rb:530:in `call'
railties (7.0.3) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.3) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.3.1) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3.1) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3.1) 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/2.7.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `<main>'

Cela semble lié au vote. Y a-t-il un conflit entre le vote et la question-réponse ?

1 « J'aime »

Salut, j’ai aussi essayé un peu ce problème.
Dans la version 2.9.0 beta 7, le problème persiste.
Comme le backtrace contient quelque chose lié au « vote », je suppose qu’il y a un conflit entre eux.
J’ai supprimé le plugin de vote (installé uniquement le plugin q/r) et cela fonctionne !
J’espère que cela pourra aider à résoudre le problème.

Désolé @yhmtsai, je n’avais pas vu votre mise à jour concernant le conflit de vote. J’ai à la fois Voting et Q&A installés sur mon site de test, et ils semblent tout à fait s’entendre ? Je vais créer un nouveau site de test avec seulement ces deux plugins et voir si cela éclaire ce qui a pu se passer.

Pouvez-vous penser à d’autres détails qui pourraient être pertinents ?

1 « J'aime »

Salut, merci pour ta réponse.
J’ai réactivé le plugin de vote et il fonctionne à nouveau. :face_with_raised_eyebrow:
J’ai aussi essayé d’installer d’abord le vote puis qa, mais ça fonctionne toujours.
Je suppose que cela pourrait venir de l’ancien qa et être conservé par les votes, ce qui entraîne une erreur même lors de la suppression du plugin qa. Après avoir supprimé le vote pour nettoyer les données, les nouveaux qa et vote fonctionnent à nouveau ensemble.
Cependant, je ne suis pas familier avec ces interactions de plugins, donc je ne fais que deviner…

1 « J'aime »

J’ai rencontré un problème similaire récemment lorsque j’ai reconstruit un nouveau site de test, et le problème était que j’utilisais accidentellement l’ancien discourse-feature-voting git pour le plugin de vote, plutôt que le discourse-voting actuel (à l’époque), ce qui a entraîné le chargement des choses dans un ordre involontaire. :slight_smile:

Les deux plugins de vote ont été récemment renommés en discourse-topic-voting et discourse-post-voting, donc si vous rencontrez toujours des problèmes, vous pourriez supprimer discourse-feature-voting de votre app.yml et utiliser les versions mises à jour, et je pense que cela devrait résoudre le problème. :+1:

1 « J'aime »

Il serait utile que Discourse émette un avertissement/rappel concernant la mise à jour de l’URL.
Je ne suis pas sûr que cela en vaille la peine, car je suppose que le changement de nom est rare.