Discourse bloccato in modalità manutenzione

Ciao, il mio server discourse è bloccato in modalità di manutenzione.
L’ho lasciato intenzionalmente in modalità di manutenzione per diversi mesi, ho aggiornato a molte versioni da quando l’ho impostato inizialmente in modalità di manutenzione.

La mia sessione è scaduta e sono stato disconnesso, ora non riesco più ad accedere.

Posso accedere via SSH al server discourse.
Ho provato i seguenti passaggi:

  1. Accedi via SSH al server discourse
  2. Naviga in /var/discourse/
  3. Esegui: ./launcher enter app
  4. Esegui rails c

Ho provato diverse cose per disabilitare la modalità di manutenzione qui.

[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

Quando sposto l’attenzione da SSH al mio browser web, vedo che il banner della modalità di manutenzione scompare.

Poi, dopo qualche secondo, ricompare.

Ho già consultato questi documenti:

per favore aiutami

Qualcuno nell’argomento collegato per primo ha avuto fortuna interrompendo e quindi riavviando il container. Potrebbe valere la pena provare?

grazie per il suggerimento. Sfortunatamente questo non mi ha aiutato :frowning:

Ho eseguito

docker ps
docker kill app
docker start app

Una cosa interessante è che ho anche provato ad abilitare manualmente la modalità di sola lettura:
es:

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

Dopo averlo fatto, ho notato che il banner ritorna e non riesco nemmeno a fare clic sul pulsante di accesso perché dice “L’accesso è disabilitato mentre il sito è in modalità di sola lettura.” e vedo anche il banner che dice:

Questo sito è in modalità di sola lettura. Continua a navigare, ma risposte, mi piace e altre azioni sono disabilitate per ora.

quando chiamo di nuovo disable_readonly_mode, il banner della modalità di manutenzione scompare e posso fare clic sul pulsante di accesso. Discourse mi passa persino al provider di autenticazione SSO.

Tuttavia, quando vengo reindirizzato di nuovo a Discourse, ottengo un’intera pagina che dice “Il sito è in modalità di sola lettura. Le interazioni sono disabilitate.”

Ho fatto qualche ricerca e, sebbene non abbia ancora trovato una soluzione, sembra che il link /u/admin-login ignori la modalità di sola lettura e ti permetta comunque di accedere:

@41821 Puoi provare Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)

4 Mi Piace

Nulla di ciò che ho fatto è stato in grado di farmi uscire dallo stato.
Dopo Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) passa a R/W per un secondo e subito dopo torna a R/O. Nulla di discernibile nei log. Anche svuotare Redis non aiuta. Né cancellare le chiavi redis a mano.

Questo è molto probabilmente un bug poiché il ripristino da 2.8.7 a 2.8.3 (che era la mia precedente versione funzionante) ha corretto il problema.

Ho provato a esaminare il codice per capire dove è stato introdotto il bug, ma non sono riuscito a capirlo.

1 Mi Piace

Questo è un sito self-hosted? Svuotare Redis dovrebbe risolvere tutto poiché la logica di sola lettura dipende interamente dall’impostazione delle chiavi Redis corrette.