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:
Accedi via SSH al server discourse
Naviga in /var/discourse/
Esegui: ./launcher enter app
Esegui rails c
Ho provato diverse cose per disabilitare la modalità di manutenzione qui.
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:
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.
Questo è un sito self-hosted? Svuotare Redis dovrebbe risolvere tutto poiché la logica di sola lettura dipende interamente dall’impostazione delle chiavi Redis corrette.