新規ユーザーがサインアップできない、コンソールに404エラー

さて、もう確信が持てなくなってきました。

Fingerprint を無効にしてもログには依然として大量のエラーが発生しており、通常モードでは新しいユーザーを作成できません。セーフモードでは新しいユーザーを作成できたので、もしかするとテーマコンポーネントの問題かもしれません。

10 分以内に、以下の 3 つのバックトレースそれぞれについて 10 件のエラーが発生しました。

1:

メッセージ(10 件のコピーが報告されました)

ジョブ例外:スレッドを割り当てできません

バックトレース

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:280:in 'Redis::Commands::Keys#exists?'
/var/www/discourse/lib/discourse_redis.rb:156:in 'block in DiscourseRedis#exists?'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:156:in 'DiscourseRedis#exists?'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:303:in 'MiniScheduler::Manager#repair_queue'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:46:in 'MiniScheduler::Manager::Runner#repair_queue'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:21:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

2:

メッセージ(10 件のコピーが報告されました)

ジョブ例外:スレッドを割り当てできません

バックトレース

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:256:in 'Redis::Commands::Keys#del'
/var/www/discourse/lib/discourse_redis.rb:168:in 'block in DiscourseRedis#del'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:165:in 'DiscourseRedis#del'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:48:in 'MiniScheduler::DistributedMutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:15:in 'MiniScheduler::DistributedMutex.synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:365:in 'MiniScheduler::Manager#lock'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:273:in 'MiniScheduler::Manager#reschedule_orphans!'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:52:in 'MiniScheduler::Manager::Runner#reschedule_orphans'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:22:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

3:

メッセージ(10 件のコピーが報告されました)

ジョブ例外:スレッドを割り当てできません

バックトレース

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'Thread.new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'block in MiniScheduler::Manager::Runner#ensure_worker_threads'
<internal:numeric>:257:in 'Integer#times'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'MiniScheduler::Manager::Runner#ensure_worker_threads'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:23:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

また、10 分以内にこのエラーが 585 件発生しました。

メッセージ(585 件のコピーが報告されました)

ジョブ例外:スレッドを割り当てできません

バックトレース

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:256:in 'Redis::Commands::Keys#del'
/var/www/discourse/lib/discourse_redis.rb:168:in 'block in DiscourseRedis#del'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:165:in 'DiscourseRedis#del'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:48:in 'MiniScheduler::DistributedMutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:15:in 'MiniScheduler::DistributedMutex.synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:365:in 'MiniScheduler::Manager#lock'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:316:in 'MiniScheduler::Manager#tick'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler.rb:74:in 'block (2 levels) in MiniScheduler.start'

コアプラグイン以外でインストールしているのは、Fingerprint(現在は無効化)、Staff Alias、および Always-Anonymous Categories Plugin のみです。他の有効なプラグインはすべてコア由来のものです。

私のテーマコンポーネントは以下の通りです。

テーマコンポーネントを一つずつ無効化して確認するべきでしょうか?ログインプロセスに影響を与える可能性があるとは思えないものしかインストールしていませんが。

何が起こっているのか全く分かりません。すべてのテーマコンポーネントとプラグインを無効にしましたが、/logs にはまだ同じエラーが表示され、匿名ユーザーは /assets/detect.map/assets/vendor.map/assets/start-discourse.map/assets/browser-update.map に対してブラウザで 404 エラーを受け取っています。それでも新しいユーザーを作成できません。

Discourse ID経由で新しいアカウントを作成したところ、問題なく作成できました。

ログアウトして再度サインインすると、問題なく再び動作します。

コンソールにエラーはありません。

あなたが行った変更は機能したようですね。

反応も非常に良いので、それは良いことです。

これらのエラーはsidekiq(ジョブスケジューラ)からのものであり、ソフトウェアレベルではなく、システムレベルの問題を示しています。

スレッド数やオープンファイル数に制限はありますか?RAMは制約されていますか?いくつUnicornスレッドを実行していますか?

スワップファイルを作成しましたか?

MaxMind DBのダウンロードを設定しましたか?

これも、機能には影響しないため無視できます。ブラウザの開発者コンソールを開いた人にのみ表示されます。

注意すべき落とし穴の1つは、一部のプラグインは無効になっている場合でも、まだコードを実行することです。これら3つのプラグインがそうであるかどうかはわかりませんが、特定のプラグインが原因かどうかを判断しようとしているのであれば、app.ymlファイルから完全に削除してテストするのが最善の方法です。

テーマコンポーネントについても同じことを行うことはできますが、ご指摘のとおり、それらはログインとやり取りしていないようです。

最後に作成したユーザー以降、管理ダッシュボードに新しいユーザーが表示されていません。削除しましたか?

1GBのDO(DigitalOcean)ドロッパーでコンソール経由のデフォルトのワンライナーインストールを実行しただけで、Discourseセットアップウィザード/管理ダッシュボード以外では何も変更していません。私のドロッパーは
1 GB / 25 GB ディスク / Ubuntu 24.04 (LTS) x64 です。メモリ使用量は一貫して非常に高く、約60〜75%ですが、メモリの多いドロッパーにサイズアップすべきでしょうか?

app.ymlにプラグインを追加して再構築する以外は、discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub の基本的なクラウドインストール手順に従っただけです。

はい、最初にインストールを実行した際、コンソールプロンプトでスワップファイルを作成するかどうか尋ねられたので、「はい」と答えました。ドロッパーコンソールによると、スワップ使用率は81%です。

:+1: 今試しています

app.yml から Fingerprint を削除したところ、すべてのエラーが止まり、ログインの問題が解決しました。どうもありがとうございます。