Warum hat mein Plugin nach Monaten aufgehört zu funktionieren?

Hallo, ich habe ein sehr einfaches Plugin geschrieben, das nach der Anmeldung eines Benutzers ein JWT-Token hinzufügt, und es funktioniert seit fast einem Jahr einwandfrei. Heute ist unser Forum ausgefallen, weil irgendwie das Zertifikat abgelaufen ist (was an sich schon merkwürdig ist), also habe ich versucht, ./launcher app rebuild auszuführen, und der Rebuild schlägt aufgrund eines Fehlers im Plugin fehl.

I, [2022-01-27T00:16:48.616458 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
** PLUGIN FAILURE **

Sie können Discourse aufgrund dieses Fehlers bei der Plugin-Initialisierung nicht erstellen:

uninitialized constant Auth::DefaultCurrentUserProvider

/var/www/discourse/plugins/discourse-jwt-session/lib/jwt_current_user_provider.rb:3:in `<main>'

Die relevante Zeile im Plugin ist nur:

class JwtCurrentUserProvider < Auth::DefaultCurrentUserProvider

Ich kann mir nicht vorstellen, warum dies plötzlich nicht mehr funktionieren sollte, da es keine relevanten Änderungen an lib/auth/current_user_provider.rb zu geben scheint, sodass diese Konstante sehr wohl noch existieren sollte. Es sei denn, es gab eine Änderung in der Reihenfolge, in der Bibliotheken und Plugins geladen werden?

Wenn ich das Plugin in meiner app.yaml auskommentiere, wird der Rebuild erfolgreich abgeschlossen. Wenn ich es wieder einkommentiere, schlägt es erneut fehl.

Als Kontext: Wir verwenden Version 2.8.0beta4. Irgendeine Idee, was plötzlich los sein könnte?

Ich habe gerade dieses Thema gefunden, während ich nach einer Lösung für dasselbe Problem gesucht habe, und inzwischen habe ich eine Lösung gefunden.

Der include für die Klassendefinition sollte jetzt innerhalb des after_initialize-Blocks erfolgen, da er sonst nicht mehr funktioniert.

2 „Gefällt mir“

Per:

Ich bestätige, dass Ihr Fix anscheinend das Problem für @wilson29thid gelöst hat :slight_smile:

1 „Gefällt mir“

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