ログイン済みユーザーのエラーとGitのハング

例えば私のフォーラムでは、管理者によるいかなる操作もないにもかかわらず、突然ログインできなくなりました。問題なのは、GitHubにアクセスできないときにDiscourseをアップグレードできないことではなく、GitHubへのアクセス不能が、実行可能であるアップグレードの確認を試みるDiscourseによってフォーラム全体をダウンさせてしまう点にあります。

はい、まさにその通りです。

これは、現在のユーザーシリアライザーの中で新機能について人に知らせたがるあまりの衝動と、通常のスローなクローンから離脱させるために3年前に行われた変更が組み合わさったことで引き起こされたものだと思います:

@Ed_S さんと @jeanas さん、影響を受けたインスタンスの管理者ですよね?これはGitHubがダウンしている間、管理者にのみ影響を与えるはずです。

はい、その通りです。別のアカウントではログインできましたが、管理者アカウントではログインできませんでした。

なるほど、PRをマージしてもらいました。あなたが運用しているリリースチャンネルに反映されたら教えてください。その後、数日待ってGitHubがまたダウンしたときに、その状況がどうだったか教えてください。

了解です、ありがとうございます。確認のためですが、私は管理者で、モデレーターが2人おり、そのうちの1人が影響を受けていました。つまり、これは全スタッフに影響するものか、それともすべてのログイン済みユーザーに影響するもののいずれかだと思います。私はインコグニートでのアクセスには問題ありませんでした。私の場合、かなりの遅延はありましたが、完全にロックアウトされるわけではなく、ときどきログインすることができました。

すばらしい、迅速な修正に感謝します!

OPと同じ問題に遭遇したようです。

サーバーの負荷が徐々に増加していました。非常に奇妙な断続的なパフォーマンス低下の後、Oops画面が恒常化しました。過去3〜4日間にわたって続いています。

現在、Let’s Encryptのレート制限が多数トリガーされ、再構築が何度も行われた後、非管理者ユーザーでテストしてみたらログインできました!

しかし、管理者は依然としてログインできません(おそらくモデレーターも同様です)。このアプリは今日何度も再構築されているため、最新バージョンであるはずです。

何が不足しているのでしょうか?

管理者としてログインすることはできますか?

フィードバックです。9月19日頃からこの問題に遭遇したと確信しています(当初、このトピックや報告の存在を知らなかったため、誤診していました)。

この期間中のGitHubの状況については把握していませんが、この問題は8月の稼働時間/停止イベントまで遡るようなので、誰か確認してくれると助かります。

昨日行われた最新の再構築では、既存の管理者がログインできません。

これは奇妙な状態です。船長はいないのに、乗客はいるが、乗組員はいないかもしれないような状態です。

この返信を書いている最中に、rakeコマンドを使って新しい管理者を作成すればうまくいくかもしれないと考え、実際に試したところ、成功しました!

つまり、現在起きているのは、過去の管理者アカウントでログインを試みると毎回「Oops…」画面が表示されるのに対し、新しく作成した管理者ユーザーにはログインに問題がない、ということです。

はい。私の場合、問題は修正されたようです。

つまり、@Ed_S さんは最終的にログインできるようになったのですね。ただし、しばらく待たなければならない可能性があることを示唆しています。一方、私にはまだログインできません(元の管理者アカウントが影響を受けています)。そこで疑問に思っているのは、これまでにコミットで対応されてきた「git hang」の問題よりも、より広範囲に及ぶものではないかということです。何か、より詳しい情報を明らかにするために実行できる診断方法について、あなたや他の誰かからヒントや見解をいただけないでしょうか。

ご協力に感謝いたします。

はい、私のフォーラムはGitHubのシステムが過度に防御的だった影響を受けましたが、数時間後に何らかの修正がロールアウトされて、通常通りになりました。

おそらく、Discourseフォーラムを壊してしまうようなことをまたやったのでしょう。地域に依存しているか、特定のプロバイダーに限定されている可能性があります。私はヘルシンキのHetznerを使用しています。

はい、このインスタンスは米国拠点のDOドロップレットです。:thinking:

OK、今日はリビルドを実行して、状況が改善するかどうか試してみましたが、何も変わりませんでした。

現在、ブレイク(分割/変更)以前に作成された管理者アカウントでは、Discourseインスタンスにログインできませんが、ブレイク以降に作成された管理者アカウントではログインできます。

私だけかもしれませんが、管理者やモデレーターアカウントのみを影響させるという「バグ」なら、セキュリティ上の懸念を呼び起こすはずです。

もしこれが意図的な妨害行為であれば、ずる賢く、陰険なものになるのではないでしょうか?

  • ユーザーはそのまま無傷で、船長と乗組員が貨物室に縛り付けられていることに気づかず、船は水平線に向かって航行し続けています。:thinking:

このトピックを読み、Git依存関係が本来そうであるべきではなかったという主張された根本原因について基本的な理解はあります。しかし、もしあなたが悪意のある rogue AI だったら、Discourseをハッキングするための完璧な方法ではないでしょうか?

さらに、このケースでは、まだ修正されていません。なぜなのか私にはわかりません。

私の浅はかな推測を超えて、リビルド直後にログを確認してどのようなエラーが発生したか調べました。以下はその1つです。関連性があるかどうかはわかりませんが、価値があるかもしれないので投稿しておきます。

activesupport (8.1.4) lib/active_support/values/time_zone.rb:461:in 'Date._parse'

activesupport (8.1.4) lib/active_support/values/time_zone.rb:461:in 'ActiveSupport::TimeZone#parse'

app/serializers/current_user_serializer.rb:216:in 'CurrentUserSerializer#has_new_upcoming_changes'

(eval at active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):81:in 'CurrentUserSerializer#_fast_attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in 'ActiveModel::Serializer#attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in 'ActiveModel::Serializer#_serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in 'ActiveModel::Serializer#serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in 'ActiveModel::Serializer#as_json'

activesupport (8.1.4) lib/active_support/json/encoding.rb:53:in 'Oj::Rails::Encoder#encode'

activesupport (8.1.4) lib/active_support/json/encoding.rb:53:in 'ActiveSupport::JSON.encode'

activesupport (8.1.4) lib/active_support/core_ext/object/json.rb:42:in 'ActiveSupport::ToJsonWithActiveSupportEncoder#to_json'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in 'ActiveModel::Serializer#to_json'

multi_json (1.21.1) lib/multi_json/adapters/oj.rb:67:in 'Oj.dump'

multi_json (1.21.1) lib/multi_json/adapters/oj.rb:67:in 'MultiJSON::Adapters::Oj#dump'

multi_json (1.21.1) lib/multi_json/adapter.rb:110:in 'MultiJSON::Adapter.dump'

multi_json (1.21.1) lib/multi_json.rb:215:in 'MultiJSON.generate'

multi_json (1.21.1) lib/multi_json/deprecated.rb:34:in 'Kernel#public_send'

multi_json (1.21.1) lib/multi_json/deprecated.rb:34:in 'block in MultiJSON.deprecate_alias'

multi_json (1.21.1) lib/multi_json.rb:298:in 'Kernel#public_send'

multi_json (1.21.1) lib/multi_json.rb:298:in 'block (2 levels) in <module:MultiJson>'

lib/application_layout_preloader.rb:81:in 'ApplicationLayoutPreloader#preload_current_user_data'

lib/application_layout_preloader.rb:32:in 'ApplicationLayoutPreloader#preloaded_data'

app/helpers/application_helper.rb:987:in 'ApplicationHelper#preloaded_json'

app/views/layouts/application.html.erb:111

actionview (8.1.4) lib/action_view/base.rb:281:in 'Kernel#public_send'

actionview (8.1.4) lib/action_view/base.rb:281:in 'ActionView::Base#_run'

actionview (8.1.4) lib/action_view/template.rb:284:in 'block in ActionView::Template#render'

activesupport (8.1.4) lib/active_support/notifications.rb:212:in 'ActiveSupport::Notifications.instrument'

actionview (8.1.4) lib/action_view/template.rb:590:in 'ActionView::Template#instrument_render_template'

actionview (8.1.4) lib/action_view/template.rb:272:in 'ActionView::Template#render'

rack-mini-profiler (5.0.0) lib/mini_profiler/profiling_methods.rb:90:in 'block in ActionView::Template#profile_method' 

actionview (8.1.4) lib/action_view/renderer/template_renderer.rb:77:in 'block in ActionView::TemplateRenderer#render_with_layout'

activesupport (8.1.4) lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'

activesupport (8.1.4) lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'

activesupport (8.1.4) lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'

actionview (8.1.4) lib/action_view/renderer/template_renderer.rb:75:in 'ActionView::TemplateRenderer#render_with_layout'

actionview (8.1.4) lib/action_view/renderer/template_renderer.rb:59:in 'ActionView::TemplateRenderer#render_template'

actionview (8.1.4) lib/action_view/renderer/template_renderer.rb:11:in 'ActionView::TemplateRenderer#render'

actionview (8.1.4) lib/action_view/renderer/renderer.rb:58:in 'ActionView::Renderer#render_template_to_object'

actionview (8.1.4) lib/action_view/renderer/renderer.rb:31:in 'ActionView::Renderer#render_to_object'

actionview (8.1.4) lib/action_view/rendering.rb:136:in 'block in ActionView::Rendering#_render_template'

actionview (8.1.4) lib/action_view/base.rb:308:in 'ActionView::Base#in_rendering_context'

actionview (8.1.4) lib/action_view/rendering.rb:135:in 'ActionView::Rendering#_render_template'

actionpack (8.1.4) lib/action_controller/metal/streaming.rb:179:in 'ActionController::Streaming#_render_template'

actionview (8.1.4) lib/action_view/rendering.rb:122:in 'ActionView::Rendering#render_to_body'

actionpack (8.1.4) lib/action_controller/metal/rendering.rb:192:in 'ActionController::Rendering#render_to_body'

actionpack (8.1.4) lib/action_controller/metal/renderers.rb:155:in 'ActionController::Renderers#render_to_body'

actionpack (8.1.4) lib/abstract_controller/rendering.rb:28:in 'AbstractController::Rendering#render'

actionpack (8.1.4) lib/action_controller/metal/rendering.rb:173:in 'ActionController::Rendering#render'

actionpack (8.1.4) lib/action_controller/metal/instrumentation.rb:31:in 'block (2 levels) in ActionController::Instrumentation#render'

activesupport (8.1.4) lib/active_support/benchmark.rb:17:in 'ActiveSupport::Benchmark.realtime'

actionpack (8.1.4) lib/action_controller/metal/instrumentation.rb:31:in 'block in ActionController::Instrumentation#render'

actionpack (8.1.4) lib/action_controller/metal/instrumentation.rb:100:in 'ActionController::Instrumentation#cleanup_view_runtime'

activerecord (8.1.4) lib/active_record/railties/controller_runtime.rb:48:in 'ActiveRecord::Railties::ControllerRuntime#cleanup_view_runtime'

actionpack (8.1.4) lib/action_controller/metal/instrumentation.rb:30:in 'ActionController::Instrumentation#render'

lib/topic_list_responder.rb:16:in 'block (2 levels) in TopicListResponder#respond_with_list'

actionpack (8.1.4) lib/action_controller/metal/mime_responds.rb:224:in 'ActionController::MimeResponds#respond_to'

lib/topic_list_responder.rb:7:in 'TopicListResponder#respond_with_list'

app/controllers/list_controller.rb:119:in 'block (2 levels) in <class:ListController>'

actionpack (8.1.4) lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action'

actionpack (8.1.4) lib/abstract_controller/base.rb:221:in 'AbstractController::Base#process_action'

actionpack (8.1.4) lib/action_controller/metal/rendering.rb:199:in 'ActionController::Rendering#process_action'

actionpack (8.1.4) lib/abstract_controller/callbacks.rb:267:in 'block in AbstractController::Callbacks#process_action'

activesupport (8.1.4) lib/active_support/callbacks.rb:121:in 'block in ActiveSupport::Callbacks#run_callbacks'

app/controllers/application_controller.rb:458:in 'block in ApplicationController#with_resolved_locale'

i18n (1.14.8) lib/i18n.rb:354:in 'I18n::Base#with_locale'

app/controllers/application_controller.rb:458:in 'ApplicationController#with_resolved_locale'

activesupport (8.1.4) lib/active_support/callbacks.rb:130:in 'block in ActiveSupport::Callbacks#run_callbacks'

app/controllers/application_controller.rb:1140:in 'ApplicationController#ensure_dont_cache_page'

activesupport (8.1.4) lib/active_support/callbacks.rb:130:in 'block in ActiveSupport::Callbacks#run_callbacks'

activesupport (8.1.4) lib/active_support/callbacks.rb:141:in 'ActiveSupport::Callbacks#run_callbacks'

actionpack (8.1.4) lib/abstract_controller/callbacks.rb:266:in 'AbstractController::Callbacks#process_action'

actionpack (8.1.4) lib/action_controller/metal/rescue.rb:36:in 'ActionController::Rescue#process_action'

actionpack (8.1.4) lib/action_controller/metal/instrumentation.rb:76:in 'block in ActionController::Instrumentation#process_action'

activesupport (8.1.4) lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'

activesupport (8.1.4) lib/ac


また、少し前にも、OPが投稿したものと同じ、あるいは同様のエラーがログに記録されているのを見つけました。また、おそらくタイムアウトと思われる、その「ピッチフォーク」(エラー/問題)も大量にありました。

数日前にビルドを更新して以来、それらのエラーは表示されなくなりましたが、状況は同じままです。:thinking:

このインスタンスは未解決のままなので、また自分のトピックに戻しました。このインスタンスには本質的な違いがある可能性があるためです - https://meta.discourse.org/t/the-git-hang-and-the-admin-mod-user-accs-oops-error-page-error/