Neue Benutzer können sich nicht registrieren, 404-Fehler in der Konsole

Ich bin mir nicht sicher, ob dies ein Fehler oder ein Problem mit meiner Konfiguration ist.

Wenn ich versuche, einen neuen Benutzer über die Discourse ID-Anmeldung zu erstellen, funktioniert der Discourse ID-Verifizierungsteil einwandfrei, aber bei der Rückkehr zu meiner Instanz unter keppari.discourse.diy schlägt die Anmeldung stillschweigend fehl, selbst wenn eine mit Discourse ID verifizierte E-Mail im Browser angemeldet ist. Die Schaltfläche „Anmelden“ ist verfügbar, tut aber nichts, wenn sie angeklickt wird, und es gibt keine Warnung auf der Seite. Ich konnte zuvor andere Benutzer mit Discourse ID erstellen.

In meinen Anmelde- und Authentifizierungseinstellungen ist meine einzige überschriebene Einstellung die Deaktivierung von 2FA und die Zulassung von Discourse ID. Ich hoste selbst und habe kein SMTP konfiguriert. Zwischen der Erstellung der vorherigen Benutzer und diesem Versuch habe ich kurzzeitig lokale Anmeldungen deaktiviert, weil ich dachte, da ich kein SMTP konfiguriert habe, würde das Anmeldeformular verwirrend sein, aber jetzt habe ich die lokale Anmeldung wieder aktiviert.

Ich bin mir nicht sicher, ob dies damit zusammenhängt, aber in der Konsole gibt es für alle Seitenaufrufe anonymer Benutzer eine Reihe von 404-Fehlern für meine Plugins, aber auch für /assets/vendor.map und assets/start-discourse.map. Ein angemeldeter Benutzer hat diese Konsolenfehler nicht. Ich sehe nichts Aktuelles in meinen /logs.

Ich würde mich über Hinweise zu anderen Einstellungen freuen, die ich ändern kann, falls dies ein Konfigurationsfehler meinerseits ist! Ich hoste selbst, 2026.3.0-latest

Der Benutzer steckt also auf dem Anmeldebildschirm fest, weil der Anmelde-Button deaktiviert ist? Können Sie einen Screenshot teilen? Gibt es Fehler in Ihren /logs?

1 „Gefällt mir“

Die Anmeldeschaltfläche ist nicht einmal deaktiviert, sie ist aktiviert, tut aber nichts, wenn man darauf klickt. Der erste Screenshot unten ist vor dem Versuch, auf „Anmelden“ zu klicken, aber er sieht nach dem Klicken gleich aus.

Dies sind meine aktuellen Protokolle; Ich habe um 10:25 Uhr versucht, mich anzumelden. Ich dachte, es gäbe keine Fehler in den Protokollen, als ich sie zum ersten Mal gepostet habe, aber diese Fehler ab 10:25 Uhr sind neu.

Ich bin gerade auf dem Handy und kann daher keine älteren Protokolle kopieren/einfügen, aber ich kann später heute die vollständigen Protokolle posten, falls das hilfreich ist. Danke!

1 „Gefällt mir“

Ja, bitte posten Sie den Backtrace und die Umgebung für den Fehler „can’t alloc thread“ (kann keinen Thread zuweisen), da dieser anscheinend das Chaos auf Ihrer Instanz verursacht.

1 „Gefällt mir“

Hier ist der Backtrace für den letzten can't alloc thread-Fehler:

Message (159137 copies reported)

Job exception: can't alloc 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'

Dies ist ein weiteres

Message (2661 copies reported)

Job exception: can't alloc 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'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Hallo, ich habe versucht, dies aus der Sicht eines normalen Benutzers zu betrachten. Ich gehe zur Registrierung mit der Discourse-ID und erhalte nur die Aufforderung, sobald das Feld ausgefüllt ist

ausgefüllt ist, drücke ich auf „Registrieren“ und der Button wird gedrückt, macht aber nicht das, was er soll.

Dies sind die Konsolenfehler für einen anonymen Benutzer, auf /signup und allen anderen Seiten:

[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-lazy-videos.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (poll.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (vendor.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-local-dates.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (checklist.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (spoiler-alert.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-rewind.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-calendar.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-staff-alias.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-topic-voting.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-narrative-bot.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (automation.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (start-discourse.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-details.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-user-notes.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-data-explorer.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-anonymous-categories.map, Zeile 0)
[Error] Ressource konnte nicht geladen werden: Der Server antwortete mit dem Status 404 () (discourse-fingerprint.map, Zeile 0)

Wurden Sie über meinen Anmeldeversuch benachrichtigt?

Soll ich mich stattdessen mit einer Nicht-ID anmelden, um zu sehen, ob das funktioniert?

Nein, ich sehe keinen neuen Benutzer und habe keinerlei Benachrichtigungen erhalten, vielen Dank für Ihre Bemühungen.

1 „Gefällt mir“

Ich glaube nicht, dass Nicht-ID funktionieren wird, da ich keinen SMTP konfiguriert habe.

1 „Gefällt mir“

Ich habe einen Neuaufbau durchgeführt, falls das geholfen hat, und ich erhalte immer noch die Fehler can't alloc thread und Anmeldeprobleme.

Wenn es Ihnen möglich ist, können Sie eine neue Test-Discourse-Installation auf einem neuen Droplet der gleichen Größe versuchen? Wenn Sie auf dasselbe Problem stoßen, wissen Sie, dass die Größe das Problem ist. (Ich kann dasselbe tun und dies auf einem 1-GB-Droplet testen, aber erst in ein oder zwei Tagen dazu in der Lage sein.)

Auf einer brandneuen Installation auf einem neuen 1GB-Droplet habe ich keine Fehler und kann mich problemlos mit der Discourse ID anmelden. Probleme mit meiner Hauptinstallation bekam ich erst, nachdem ich die lokale Anmeldung deaktiviert und dann wieder aktiviert hatte, falls das einen Unterschied macht.

Ich konnte dies reproduzieren, indem ich “Lokale Anmeldungen aktivieren” deaktivierte, was dazu führte, dass sich ein neuer Benutzer nicht registrieren konnte, und die gleichen Fehler in der Browserkonsole angezeigt wurden. Auf der frischen Installation erhielt ich diese Fehler in den Protokollen:

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) konnte nicht gefunden werden: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
20:00 Uhr

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) konnte nicht gefunden werden: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
20:00 Uhr

(discourse_id) Authentifizierungsfehler! access_denied: OmniAuth::Strategies::OAuth2::CallbackError, access_denied | Der Ressourceninhaber oder der Autorisierungsserver hat die Anforderung verweigert.
20:08 Uhr

Aber durch das Aktivieren von “Lokale Anmeldungen aktivieren” konnten sich neue Benutzer auf der frischen Installation wieder registrieren und die Konsolenfehler für anonyme Benutzer verschwanden. Ich konnte den Protokollfehler can't alloc thread bisher nicht reproduzieren.

Mit aktiviertem ID, können Sie Anmeldeinformationen unter Admin > Login & Authentifizierung > Discourse ID neu generieren?

Ich habe die Anmeldeinformationen neu generiert, aber ich erhalte immer noch 404-Fehler in der Browserkonsole und kann keine neuen Benutzer registrieren. Ich sehe nach der Neuerstellung keine neuen Fehler in /logs, aber ich kann sie erneut posten, falls das helfen würde.

Oh, ich verstehe. Ich denke, hier liegt eine separate Fehlkonfiguration vor.

Können Sie mir die Liste der Website-Einstellungen im Zusammenhang mit der Anmeldung und deren Werte mitteilen? Keine Anmeldeinformationen natürlich, aber ich bin neugierig, wie Ihre Website für die Behandlung neuer Anmeldungen eingerichtet ist. (Wenn Sie es lieber per PN senden möchten, können Sie das gerne tun.)

In Admin > Login & Authentication sind die einzigen Änderungen, die ich gegenüber der Standardeinstellung habe:

  • Deaktivieren von „Zweite Faktor bei externer Authentifizierung erzwingen“
  • Discourse ID aktivieren

Ich habe kurzzeitig lokale Anmeldungen deaktiviert, aber sie sind jetzt wieder aktiviert.