./launcher rebuild app schlägt fehl 'bundle exec rake db:migrate' mögliches Problem mit der Entfernung von auth/oath2_authenticator aus dem github/master Repo

Hallo zusammen, dies ist ein Hilferuf…

Ich habe versucht, die vollständige Ursache des Problems auf meinen lang laufenden Ubuntu 20.x EC2-Instanzen mit Discourse zu finden. Diese laufen alle auf AWS und funktionieren seit fast 3 Jahren einwandfrei. Plötzlich lassen sich keine davon mehr neu erstellen. Ich habe meine app.yml auf ein sehr rudimentäres Minimum reduziert… endlos gesucht… Meine aktuelle Installation in Postgres 13, Discourse 2.9.0 Beta 4 (ich bleibe immer auf dem neuesten Stand.) und ich verwende die sehr einfache Container/Docker-basierte Installation ohne Schnickschnack (keine separaten Container oder Standalone-Installationen anderer Software. Dies ist nur eine von vielen vielen Vermutungen, aber ich habe bemerkt, dass sie kürzlich in der Discourse-Codebasis auth/oauth2_authenticator in “ManagedAuthenticator und UserAssociatedAccount” umbenannt/entfernt haben.

wie hier zu sehen ist: DEV: Deprecate OAuth2Authenticator and OAuth2UserInfo (#15427) · discourse/discourse@78d0ec3 · GitHub
Kommentare im Repo zu diesem Commit:
DEV: OAuth2Authenticator und OAuth2UserInfo veraltet (#15427)

Diese wurden durch ManagedAuthenticator und UserAssociatedAccount ersetzt. Weitere Informationen finden Sie unter Adding a new 'managed' authentication method to Discourse

Hier sind meine Logs kurz vor dem Scheitern (und ja, ich habe discourse-doctor ausgeführt, das mir ziemlich dasselbe Ergebnis liefert… Ich verwende auch kein NGINX, was ich als häufiges Problem gesehen habe):

I, [2022-05-17T21:26:52.663629 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2022-05-17T21:26:54.697333 #1]  INFO -- : discourse-chat-integration ist bereits in der neuesten kompatiblen Version
discourse-rss-polling ist bereits in der neuesten kompatiblen Version
discourse-assign ist bereits in der neuesten kompatiblen Version
discourse-azure-ad ist bereits in der neuesten kompatiblen Version
discourse-solved ist bereits in der neuesten kompatiblen Version
discourse-knowledge-explorer ist bereits in der neuesten kompatiblen Version
docker_manager ist bereits in der neuesten kompatiblen Version

I, [2022-05-17T21:26:54.697677 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
LoadError: cannot load such file -- auth/oauth2_authenticator
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:35:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3/lib/active_support/dependencies/require_dependency.rb:21:in `require_dependency'
/var/www/discourse/lib/require_dependency_backward_compatibility.rb:18:in `require_dependency'
/var/www/discourse/plugins/discourse-azure-ad/plugin.rb:7:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:679:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:679:in `activate!'
/var/www/discourse/lib/discourse.rb:279:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:276:in `each'
/var/www/discourse/lib/discourse.rb:276:in `activate_plugins!'
/var/www/discourse/config/application.rb:222:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:221:in `<class:Application>'
/var/www/discourse/config/application.rb:81:in `<module:Discourse>'
/var/www/discourse/config/application.rb:80:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
I, [2022-05-17T21:26:55.807801 #1]  INFO -- :
I, [2022-05-17T21:26:55.808466 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 44
I, [2022-05-17T21:26:55.808709 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 105
2022-05-17 21:26:55.808 UTC [44] LOG:  received fast shutdown request
105:signal-handler (1652822815) Received SIGTERM scheduling shutdown...
2022-05-17 21:26:55.810 UTC [44] LOG:  aborting any active transactions
2022-05-17 21:26:55.815 UTC [44] LOG:  background worker "logical replication launcher" (PID 53) exited with exit code 1
2022-05-17 21:26:55.816 UTC [48] LOG:  shutting down
2022-05-17 21:26:55.851 UTC [44] LOG:  database system is shut down
105:M 17 May 2022 21:26:55.894 # User requested shutdown...
105:M 17 May 2022 21:26:55.894 * Saving the final RDB snapshot before exiting.
105:M 17 May 2022 21:26:55.940 * DB saved on disk
105:M 17 May 2022 21:26:55.941 # Redis is now ready to exit, bye bye...

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle exec rake db:migrate' failed with return #&lt;Process::Status: pid 654 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
c961e72970eba95a26f294e0f123987c40da1c350a4b1fe9621edf0bd665720c
1 „Gefällt mir“

Aber es sieht so aus, als wäre es seit zwei Jahren nicht mehr aktualisiert worden? (oder vielleicht habe ich das falsche angesehen?) Das ist wahrscheinlich Ihr Problem. Ich vermute, dass es jetzt eine andere Lösung gibt.

1 „Gefällt mir“

Der Azure-AD-Plugin wird nicht mehr gepflegt und wurde auf GitHub archiviert. Die beste Alternative ist wahrscheinlich

(Anweisungen für Azure AD finden Sie am Ende dieses Beitrags)

4 „Gefällt mir“

Das ist äußerst hilfreich, vielen Dank, aber auch äußerst enttäuschend, da dies bereits verwendet und bei vielen Benutzern eingeführt wurde. Dieses Plugin war einfach zu bedienen und da es sich nicht um ein Drittanbieter-Plugin handelte, war ich ziemlich zuversichtlich, dass es zumindest eine teilweise unterstützte Lösung für die Zukunft sein würde. Es sieht so aus, als ob ich dieses Problem nicht hätte, wenn sie den auth/oauth2_authenticator nicht einfach aus dem Repository gerissen/umbenannt hätten, anstatt nur ein oder zwei neue Dateien hinzuzufügen und von dort aus weiterzumachen.

Natürlich werde ich mich mit der Verwendung des OpenID Connect Authentication Plugin befassen, aber es wird ein enormer Aufwand sein, es zu implementieren.

1 „Gefällt mir“

Auch offizieller Code kann ausgemustert werden, das klingt eher nach einem Problem mit Ihren Veröffentlichungsprozessen als mit Discourse.

Wenn Sie ‘viele viele Benutzer’ haben, sollten Sie wahrscheinlich erwägen, alle Updates über eine Staging-Kopie Ihrer Website laufen zu lassen. Ein Produktionsserver blind zu aktualisieren, ohne den Prozess zuerst zu beweisen, ist unglaublich riskant.

Danke, ich wollte mein Produktionsserver nicht blind upgraden ;). Ich habe noch einige Umgebungen, die ich zuerst gründlich testen muss.

Es geht mehr darum, Änderungen nach dem Testen zu kommunizieren und sehr gründlich nach Unterschieden im neuen Setup zu suchen.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.