Ottieni un errore oops 500 durante l'installazione del plugin question answer

Ciao, ho riscontrato lo stesso problema durante l’installazione del plugin QA di Pavilion e l’ho segnalato in Oops dopo l’aggiornamento a discouse 2.9 a causa del plugin Discourse QA - support - Discourse Meta
Ho provato a installare il plugin QA di discourse in tests-passed (2.9.0.beta6) oggi, ma ho ancora lo stesso problema.
Se disabilito il plugin QA, tutto funziona.
Ho anche trovato un messaggio di errore simile in 500 error when saving category security settings - bug - Discourse Meta. Forse sono correlati?

Messaggio di errore da 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'

e alcuni screenshot della pagina web

Uso il seguente template:

- "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"

e installo i plugin

- 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

Aggiorna backtrace:

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>'

Mostra qualcosa relativo al voto. Forse c’è un conflitto tra il voto e le domande e risposte?

1 Mi Piace

Ciao, ho provato anch’io a risolvere questo problema.
Nella versione beta 7 di 2.9.0, il problema si verifica ancora.
Poiché il backtrace contiene qualcosa relativo al “voting”, suppongo ci sia qualche conflitto tra di essi.
Ho eliminato il plugin di voto (installando solo il plugin q/a) e funziona!
Spero che questo possa aiutare a capire il problema.

Mi dispiace @yhmtsai, non ho visto il tuo aggiornamento sul conflitto di voto. Ho installato sia Voting che Q&A sul mio sito di test e sembrano andare d’accordo? Creerò un nuovo sito di test solo con questi due plugin e vedrò se questo getta luce su ciò che potrebbe essere successo.

Ti vengono in mente altri dettagli che potrebbero essere rilevanti?

1 Mi Piace

Ciao, grazie per la risposta.
Ho riattivato il plugin di voto e funziona di nuovo. :face_with_raised_eyebrow:
Ho anche provato a installare prima il voto e poi qa, ma funziona ancora.
Supporrei che possa essere qualcosa del vecchio qa e mantenuto dal voto a causare l’errore anche quando si elimina il plugin qa. Dopo aver eliminato il voto per pulire i dati, il nuovo qa e il voto funzionano di nuovo insieme.
Tuttavia, non ho familiarità con l’interazione di questi plugin, quindi sto solo ipotizzando…

1 Mi Piace

Ho riscontrato un problema simile di recente quando ho ricostruito un nuovo sito di test, e il problema è stato l’uso accidentale del vecchio discourse-feature-voting git per il plugin di voto, piuttosto che quello corrente (al momento) discourse-voting, che ha causato il caricamento delle cose in un ordine non intenzionale. :slight_smile:

Entrambi i plugin di voto sono stati recentemente rinominati in discourse-topic-voting e discourse-post-voting, quindi se stai ancora riscontrando problemi potresti rimuovere discourse-feature-voting dal tuo app.yml e utilizzare quelli aggiornati e credo che questo dovrebbe risolvere il problema. :+1:

1 Mi Piace

Sarebbe utile se discourse potesse lanciare un avviso/promemoria sull’aggiornamento dell’URL.
Non sono sicuro se ne valga la pena o meno perché presumo che cambiare il nome dovrebbe accadere raramente.