Discourse bloqué en mode maintenance

Bonjour, mon serveur Discourse est bloqué en mode maintenance.
Je l’ai laissé en mode maintenance pendant plusieurs mois exprès, j’ai mis à niveau vers de nombreuses versions depuis que je l’ai initialement mis en mode maintenance.

Ma session a expiré et j’ai été déconnecté, maintenant je ne peux plus me reconnecter.

Je peux me connecter en SSH au serveur Discourse.
J’ai essayé les étapes suivantes :

  1. Se connecter en SSH au serveur Discourse
  2. Naviguer vers /var/discourse/
  3. Exécuter : ./launcher enter app
  4. Exécuter rails c

J’ai essayé plusieurs choses pour désactiver le mode maintenance ici.

[1] pry(main)> 
[2] pry(main)> 
[3] pry(main)> Discourse.disable_readonly_mode(Discourse::READONLY_MODE_KEY)
=> true
[4] pry(main)> Discourse.disable_readonly_mode
=> true

Lorsque je déplace mon attention de SSH vers mon navigateur Web, je peux voir que la bannière du mode maintenance disparaît.

Puis, quelques secondes plus tard, elle réapparaît.

J’ai déjà consulté ces documents :

S’il vous plaît, aidez-moi.

Quelqu’un dans le premier sujet lié a eu de la chance en arrêtant puis en redémarrant le conteneur. Cela pourrait-il valoir la peine d’essayer ?

Merci pour la suggestion. Malheureusement, cela ne m’a pas aidé :frowning:

J’ai exécuté

docker ps
docker kill app
docker start app

Une chose intéressante est que j’ai également essayé d’activer manuellement le mode lecture seule :
par ex.

[8] pry(main)> Discourse.enable_readonly_mode
=> true
[9] pry(main)> Discourse.disable_readonly_mode
=> true
[10] pry(main)>

Après avoir fait cela, j’ai remarqué que la bannière réapparaissait et je ne pouvais même pas cliquer sur le bouton de connexion car il disait « La connexion est désactivée pendant que le site est en mode lecture seule. » et j’ai également vu la bannière qui disait :

Ce site est en mode lecture seule. Continuez à naviguer, mais les réponses, les likes et autres actions sont désactivés pour le moment.

Lorsque j’appelle à nouveau disable_readonly_mode, la bannière du mode maintenance disparaît et je peux cliquer sur le bouton de connexion. Discourse me redirige même vers le fournisseur d’authentification SSO.

Cependant, lorsque je suis redirigé vers Discourse, j’obtiens une page entière indiquant « Le site est en mode lecture seule. Les interactions sont désactivées. »

J’ai fait quelques recherches et, bien que je n’aie pas encore trouvé de solution, il semble que le lien /u/admin-login contourne le mode lecture seule et vous permette toujours de vous connecter :

@41821 Pouvez-vous essayer Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)

4 « J'aime »

Rien de ce que j’ai fait n’a pu me sortir de cet état.
Après Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY), il passe en R/W pendant une seconde et revient immédiatement en R/O. Rien de discernable dans les logs. Même vider le Redis n’aide pas. Ni effacer les clés redis à la main.

Ceci est très probablement un bug car le retour de la version 2.8.7 à la 2.8.3 (qui était ma version fonctionnelle précédente) a corrigé le problème.

J’ai essayé de parcourir le code pour trouver où le bug a été introduit, mais je n’ai pas réussi à le déterminer.

1 « J'aime »

Est-ce un site auto-hébergé ? Vider Redis devrait tout effacer car la logique en lecture seule dépend entièrement de la définition des bonnes clés Redis.