背景:数週間前に Discourse インスタンスを 3.3.1 にアップグレードしました。モデレーターと私自身が、以下のような投稿編集を読み込もうとすると、フォーラムがタイムアウトすることに気づきました。
このエラーが発生している可能性のある場所をソフトウェアコンソールで確認するのに良い場所はありますか?ログをフィードバックすることには喜んで協力します。
背景:数週間前に Discourse インスタンスを 3.3.1 にアップグレードしました。モデレーターと私自身が、以下のような投稿編集を読み込もうとすると、フォーラムがタイムアウトすることに気づきました。
このエラーが発生している可能性のある場所をソフトウェアコンソールで確認するのに良い場所はありますか?ログをフィードバックすることには喜んで協力します。
はい、ログインして forum.example.com/logs を見ると、エラーが表示されるはずだと推測しています。
ログで確認できる唯一のエラーは次のとおりです。
Psych::DisallowedClass (Tried to dump unspecified class: 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
これが関連しているかどうかは定かではありませんが、見つけられた最新のエラーです。編集画面を表示する際にログをトリガーできる場所があれば知りたいです。これらの画面ではログが記録されず、クライアント側のタイムアウトのように見えるためです。ブラウザのインスペクターは 500 エラーを示していますが、これはサーバー側で修正できるものでしょうか?
非公式プラグインはインストールされていますか?(もしあれば、どれですか?)編集のシリアル化方法が変更されている可能性があります。\n\n良いニュースは、タイムアウトではなく、単なるエラーであるということです。しかし、問題を解決するためにお手伝いしたいと考えています。
はい、いくつかありますが、これらはフォーラムのアップグレード間に存在していました(それが問題を引き起こす可能性があるということではありませんが、すべてしばらくの間存在していました)。
# Official
- 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
# Third Party
## 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
Retorts プラグインはインストールされていますが有効になっていません。今年初めに公式のリアクションプラグインに移行し、古いデータを移行するためにそれを使用していました。
コメントアウトするか、その行を削除する必要があります。有効/無効にするだけでは不十分だと思います。
おそらく staff-alias ですが、調査します。
これは何も証明しませんが、私はそのような問題なしにスタッフのエイリアスを使用しています。
現時点では staff-alias かどうかは分かりませんが、いくつかの手がかりから有力候補と言えます。しかし、問題の原因ではなく、単にスタックトレースに含まれているだけという可能性もあります。
必要であれば、より詳細なログを提供させていただきます!
次のメンテナンスウィンドウで計画します!
無効にした状態で再構築できますか?プラグインによっては、無効な状態でも、特に古い壊れたプラグインは、誤って設定をいじることがあります。
@cmahns 修正がマージされました。ご報告ありがとうございます!
このトピックは、最後の返信から3日後に自動的にクローズされました。新しい返信は許可されていません。