Flushall di Redis

Condivido nel caso possa aiutare qualcun altro che vede “Aggiornamento” nel pannello di amministrazione, anche se non è in corso alcun aggiornamento e il forum sembra altrimenti funzionante.

Sebbene non abbia mai influito sugli aggiornamenti del Docker Manager, nelle ultime versioni ho dovuto eseguire aggiornamenti tramite CLI, poiché il pannello di amministrazione sembrava sempre indicare che Discourse stesse aggiornando.

Il mio forum è piccolo e non utilizza plugin personalizzati.

La soluzione per risolvere il problema è stata svuotare la cache Redis.

Non posso condividere la causa sottostante, ma è stato estremamente frustrante raggiungere il limite delle mie conoscenze e della mia comprensione del processo di aggiornamento di Discourse (questo non è un reclamo, ma un’ammissione).

Fino a questo momento, il comando rebuild app è sempre stato la soluzione affidabile per quasi qualsiasi problema.

Redis contiene anche sessioni utente e molto altro. Svuotare completamente Redis disconnetterà tutti gli utenti e cancellerà tutti i lavori Sidekiq in sospeso. I lavori pianificati torneranno disponibili solo dopo il prossimo riavvio.

Questa operazione dovrebbe essere considerata solo come ultima risorsa e, anche in quel caso, ti incoraggio a verificare quali chiavi specifiche siano la causa del problema invece di eseguire un flushall. È come dare fuoco a un intero edificio solo per liberarsi di un topo.

Si potrebbe invece riavviare Redis? Credo che sia un database in memoria, quindi nulla verrebbe mantenuto dopo, diciamo, un riavvio del server. E un riavvio del server non è distruttivo (e potrebbe avvenire in qualsiasi momento.)

Questo è errato. Redis persiste i dati su disco.

Apprezzo il tuo contributo e la tua esperienza.

Cose che ho provato:

Aggiornamento dal pannello di amministrazione (fallito/non è mai iniziato)

Ho seguito le istruzioni manuali per l’aggiornamento di Discourse (nelle ultime 3 release)

Ho eseguito diversi rebuild dell’app launcher.

Ho cercato sul forum un problema simile e una soluzione.

Infine, ho fatto una query a ChatGPT che ha scoperto opzioni Redis, anche se ChatGPT stesso ha detto che era una soluzione improbabile (e ha suggerito le cose che avevo già provato).

Questa è stata l’unica azione che ho intrapreso che ha risolto il problema.

Capisco l’analogia.

Cosa altro avrei potuto fare per comprendere e risolvere meglio il problema come alternativa?

Per chiarezza, hai trovato che

cd /var/discourse
git pull
./launcher rebuild app

non ha funzionato per te? (In che modo non ha funzionato? Si tratta di un’installazione standard?)

Non ho eseguito il git pull, ma ho ricostruito l’app del launcher.

Il processo è andato a buon fine, ma non è stato mai sbloccato lo stato che il pannello di amministrazione credeva fosse un aggiornamento in corso.

Grazie – quindi l’osservazione è che l’aggiornamento del pannello di amministrazione non funziona per te. Inoltre, non funziona nemmeno per me da un po’ di tempo! Sarebbe meglio se funzionasse.

Preferisco gli aggiornamenti da riga di comando, ma questa volta ho eseguito un aggiornamento di Docker e Discourse dall’interfaccia utente sul mio iPhone 15 e ha funzionato piuttosto bene (installazione standard su DO).

Di solito lo faccio tutto da CLI su uno dei miei computer, poiché l’ultima volta che ho provato (qualche mese fa) l’interfaccia utente non ha funzionato per me, quindi ho dovuto comunque accedere via SSH.

Cosa restituisce free -h?

A cosa è impostato UNICORN_WORKERS in app.yml?

A cosa è impostato db_shared_buffers in app.yml?

db_work_mem è commentato in app.yml?

Quanti (v)CPU ha il tuo server?

Free -h mostra 3.8Gi di memoria, 1.7Gi utilizzati, 134Mi liberi, 1.0Gi condivisi, buff/cache 2.0Gi, disponibili 788Mi

Swap 2.0Gi, 290Mi utilizzati, 1.7Gi liberi

UNICORN_WORKERS: 4

db_shared_buffers 1GB

db_work_mem è commentato, impostato a 40MB

Sto eseguendo un’istanza con 2 vCPU e 4GB di RAM.

Grazie per le domande! :smiley: