Änderungen werden nicht angezeigt und führen zu Zeitüberschreitungen

Hintergrund: Meine Discourse-Instanz wurde vor einigen Wochen auf 3.3.1 aktualisiert. Meine Moderatoren und ich haben festgestellt, dass unser Forum derzeit Zeitüberschreitungen aufweist, wenn wir versuchen, Beitragsbearbeitungen wie unten zu laden:

Gibt es eine gute Stelle, an der wir nachsehen können, wo dieser Fehler in der Softwarekonsole auftreten könnte? Gerne stellen wir auch Protokolle zur Verfügung.

Ja, ich vermute, dass beim Einloggen unter forum.example.com/logs Fehler angezeigt werden sollten.

3 „Gefällt mir“

Hier ist der einzige Fehler, den ich in unseren Protokollen sehen kann:

Psych::DisallowedClass (Versuch, nicht spezifizierte Klasse zu serialisieren: ActiveRecord::Associations::CollectionProxy) app/serializers/post_revision_serializer.rb:246:in `block in all_revisions' app/serializers/post_r
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:571:in `accept'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:360:in `block in visit_Enumerator'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:360:in `each'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:360:in `visit_Enumerator'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:352:in `visit_Array'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:135:in `accept'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:574:in `accept'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:331:in `block in visit_Hash'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:329:in `each'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:329:in `visit_Hash'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:135:in `accept'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:574:in `accept'
/usr/local/lib/ruby/3.3.0/psych/visitors/yaml_tree.rb:117:in `push'
/usr/local/lib/ruby/3.3.0/psych.rb:585:in `safe_dump'
activerecord (7.1.3.4) lib/active_record/coders/yaml_column.rb:19:in `dump'
activerecord (7.1.3.4) lib/active_record/coders/column_serializer.rb:26:in `dump'
activerecord (7.1.3.4) lib/active_record/type/serialized.rb:29:in `serialize'
activemodel (7.1.3.4) lib/active_model/type/helpers/mutable.rb:8:in `cast'
activemodel (7.1.3.4) lib/active_model/attribute.rb:199:in `type_cast'
activemodel (7.1.3.4) lib/active_model/attribute.rb:43:in `value'
activemodel (7.1.3.4) lib/active_model/attribute_set.rb:51:in `fetch_value'
activerecord (7.1.3.4) lib/active_record/attribute_methods/read.rb:51:in `_read_attribute'
activemodel (7.1.3.4) lib/active_model/attribute_methods.rb:286:in `modifications'
app/serializers/post_revision_serializer.rb:246:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:241:in `each'
app/serializers/post_revision_serializer.rb:241:in `all_revisions'
app/serializers/post_revision_serializer.rb:202:in `revisions'
app/serializers/post_revision_serializer.rb:265:in `previous'
app/serializers/post_revision_serializer.rb:46:in `previous_hidden'
(eval at active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):5:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456: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.1.3.4) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.1.3.4) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.1.3.4) 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:528:in `render_json_dump'
app/controllers/posts_controller.rb:459:in `latest_revision'
actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
plugins/discourse-staff-alias/lib/discourse_staff_alias/posts_controller_extension.rb:26:in `block (2 levels) in <module:PostsControllerExtension>'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `instance_exec'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in `process_action'
activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in `process'
actionview (7.1.3.4) 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.1.3.4) lib/action_controller/metal.rb:227:in `dispatch'
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in `block in serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in `block in find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `each'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:360:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in `call'
railties (7.1.3.4) lib/rails/engine.rb:536:in `call'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `me

Ich bin mir nicht sicher, ob dies damit zusammenhängt, nur der aktuellste Fehler, den ich finden konnte. Ich frage mich, ob es irgendwo eine Möglichkeit gibt, die Protokollierung auszulösen, wenn Bearbeitungsbildschirme aufgerufen werden, da diese nicht protokolliert werden, sondern nur wie ein clientseitiger Timeout aussehen. Der Browser-Inspektor zeigt einen 500er-Fehler an. Ist das etwas, das ich serverseitig beheben kann?

1 „Gefällt mir“

Sind nicht offizielle Plugins auf Ihrer Instanz installiert (wenn ja, welche?), ich vermute, dass etwas die Art und Weise, wie wir Bearbeitungen serialisieren, ändert.

Die gute Nachricht ist, dass dies keine Zeitüberschreitung ist, sondern nur ein Fehler, aber wir möchten Ihnen helfen, ihn zu beheben.

1 „Gefällt mir“

Ja, ein paar, aber diese waren bereits vor den Upgrades im Forum vorhanden (nicht, dass das keine Probleme verursachen kann, nur dass sie alle schon eine Weile bestehen)

 # Offiziell
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-oauth2-basic.git
          - git clone https://github.com/discourse/discourse-chat-integration.git
          - git clone https://github.com/discourse/discourse-staff-notes.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-docs.git
          - git clone https://github.com/discourse/discourse-encrypt.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-rss-polling.git
          - git clone https://github.com/discourse/discourse-category-experts.git
          - git clone https://github.com/discourse/discourse-staff-alias.git
          - git clone https://github.com/discourse/discourse-templates.git
          - git clone https://github.com/discourse/discourse-automation.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-post-voting.git
          - git clone https://github.com/discourse/discourse-policy.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/discourse/discourse-restricted-replies.git
          - git clone https://github.com/discourse/discourse-teambuild.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-shared-edits.git
          - git clone https://github.com/discourse/discourse-github.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-signatures.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-custom-topic-lists.git
          - git clone https://github.com/discourse/discourse-lti.git
          # Drittanbieter 
          ## Retorts 
          - git clone https://github.com/gdpelican/retort.git
          ## Communiteq
          - git clone https://github.com/communiteq/discourse-private-replies.git
          - git clone https://github.com/communiteq/discourse-private-topics.git
          - git clone https://github.com/communiteq/discourse-category-restrictor.git
          ## NetGamers
          - git clone https://github.com/netgamers-forum/discourse-category-mod-enhancer.git
          ## Pavilion Coop
          - git clone https://github.com/paviliondev/discourse-custom-wizard.git
          - git clone https://github.com/paviliondev/discourse-tickets.git
          - git clone https://github.com/paviliondev/discourse-landing-pages.git
          - git clone https://github.com/paviliondev/discourse-journal.git

Das Retorts-Plugin ist installiert, aber nicht aktiviert. Wir sind auf das offizielle Reactions-Plugin umgestiegen und hatten es, um die alten Daten zu migrieren, als wir Anfang des Jahres endlich den Wechsel vollzogen haben.

1 „Gefällt mir“

Ich glaube nicht, dass Aktivieren/Deaktivieren ausreicht. Sie sollten es auskommentieren. Oder diese Zeile löschen.

6 „Gefällt mir“

Es ist höchstwahrscheinlich ein Alias für Mitarbeiter, aber wir werden das untersuchen.

Dies beweist nichts, aber ich benutze den Staff-Alias ohne solche Probleme.

1 „Gefällt mir“

Ja, ich bin mir zu diesem Zeitpunkt nicht sicher, ob es sich um staff-alias handelt, aber wenige Hinweise machen es zu einem guten Kandidaten. Es könnte jedoch auch nur im Stacktrace stehen, ohne die Ursache des Problems zu sein.

Gerne gebe ich bei Bedarf detailliertere Protokolle an!

Geplant für unser nächstes Wartungsfenster!

Kannst du es ohne neu erstellen? Manchmal können Plugins Dinge falsch manipulieren, selbst in einem deaktivierten Zustand, besonders alte, kaputte.

@cmahns Die Korrektur wurde übernommen, danke für den Bericht!

2 „Gefällt mir“

Dieses Thema wurde 3 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr möglich.