I nuovi utenti non possono registrarsi, errori 404 nella console

Beh, ora non ne sono così sicuro.

Sto comunque ricevendo un sacco di errori nei log, anche con Fingerprint disabilitato, e non riesco a creare un nuovo utente in modalità normale. Sono riuscito a crearne uno in modalità provvisoria, quindi forse è un problema legato a un componente del tema?

In dieci minuti ho registrato 10 errori per ciascuno dei seguenti tre backtrace:

1:

Messaggio (10 copie riportate)

Eccezione del job: impossibile allocare un thread

Backtrace

/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:

Messaggio (10 copie riportate)

Eccezione del job: impossibile allocare un thread

Backtrace

/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:

Messaggio (10 copie riportate)

Eccezione del job: impossibile allocare un thread

Backtrace

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

E 585 errori di questo tipo in 10 minuti:

Messaggio (585 copie riportate)

Eccezione del job: impossibile allocare un thread

Backtrace

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

Gli unici plugin non core installati sono Fingerprint (ora disabilitato), Staff Alias e Always-Anonymous Categories Plugin . Gli altri plugin abilitati provengono tutti dal core.

I miei componenti del tema sono:

Dovrei semplicemente disattivare uno per uno i componenti del tema? Non credo che nulla di ciò che ho installato possa interferire con il processo di accesso.

Non ho idea di cosa stia succedendo. Ho disabilitato ogni singolo componente del tema e plugin e sto ancora ricevendo gli stessi errori in /logs e gli utenti anonimi hanno errori nel browser 404 per /assets/detect.map, /assets/vendor.map, /assets/start-discourse.map e /assets/browser-update.map. Non riesco ancora a creare un nuovo utente.

Sono appena riuscito a creare un nuovo account tramite Discourse ID, nessun problema.

Effettuare il logout e l’accesso di nuovo funziona di nuovo, nessun problema.

Nessun errore nella console:

Qualunque modifica abbiate apportato sembra aver funzionato?

È anche molto reattivo, il che è un bene.

Questi errori provengono da sidekiq (lo scheduler dei job) e indicano una sorta di problema a livello di sistema, non a livello software.

Ci sono limiti sul numero di thread? File aperti? La RAM è limitata? Quanti thread unicorn state eseguendo?

Avete creato un file di swap?

Avete configurato i download del DB MaxMind?

Anche questi possono essere ignorati poiché non influenzeranno la funzionalità, appariranno solo a coloro che aprono la console di sviluppo del browser.

Una difficoltà da tenere a mente è che alcuni plugin eseguono ancora del codice anche quando sono disabilitati. Non so se questo sia il caso per questi tre, ma se stai cercando di determinare se un dato plugin è il colpevole, la cosa migliore da fare è rimuoverlo completamente dal file app.yml e fare un test.

Potresti fare lo stesso con i componenti del tema, ma come fai notare, non sembrano interagire con gli accessi.

Non vedo nuovi utenti nella dashboard di amministrazione dall’ultimo che ho creato, l’hai eliminato?

Ho appena eseguito l’installazione predefinita con una sola riga tramite console su un droplet DO da 1GB e non ho modificato nient’altro se non nel wizard di configurazione di Discourse/dashboard di amministrazione. Il mio droplet è
1 GB / 25 GB Disco / Ubuntu 24.04 (LTS) x64. L’utilizzo della memoria è costantemente molto alto, intorno al 60-75%, dovrei aumentare le dimensioni a un droplet con più memoria?

Ho appena seguito le istruzioni di installazione cloud di base su discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub e non ho toccato nulla se non aggiungere plugin a app.yml e ricostruire.

Sì, quando ho eseguito l’installazione per la prima volta e il prompt della console mi ha chiesto se volevo creare un file di swap, ho risposto di sì. La console del droplet dice che l’utilizzo dello swap è dell’81%

:+1: lo sto provando ora

Rimuovere Fingerprint da app.yml ha interrotto tutti gli errori e ha risolto il problema di accesso, grazie mille.