PostgreSQL Bloccato durante la ricostruzione

Ho lo stesso problema… DO Droplet su Ubuntu 20.04. Ho provato ad aggiornare Docker da Discourse per primo, ma continuava a dare un codice di errore 137. Quindi ho provato a ricostruire Discourse dalla riga di comando e si è bloccato su Il database è pronto ad accettare connessioni. Ctrl+C non faceva nulla, quindi ho chiuso SSH e ne ho aperto uno nuovo e ho avviato di nuovo Discourse ed era ancora funzionante ma non aggiornato. Ho riavviato il droplet e ho provato di nuovo ad aggiornare Docker da Discourse e questa volta ha funzionato! Quindi ho provato di nuovo a ricostruire Discourse ma si è ancora bloccato nello stesso punto. Ho chiuso di nuovo SSH e ne ho aperto uno e ho avviato di nuovo Discourse, ma ora ottengo la schermata Oops! Quindi ora il mio sito Discourse è inattivo e l’unico modo in cui sono mai riuscito a recuperare dalla schermata Oops in precedenza è stato ricostruire l’app, cosa che non posso fare!

Quindi ora sono perso perché la mia esperienza con Discourse e Droplet è molto limitata e non sono sicuro di cosa posso fare ora. docker_manager è l’unico plugin utilizzato nel mio app.yml, quindi posso solo presumere che l’errore sia dovuto a Docker che è una versione più recente e non si accorda con la mia versione di Discourse? Non lo so. Ho aggiornato Discourse l’ultima volta a gennaio, quindi non è così obsoleto…

Quindi il mio sito è inattivo finché questo problema non verrà risolto… A meno che non avvii un nuovo Droplet e ripristini tutto da capo e ripristini il backup di Discourse che ho fatto? È questa la mia unica opzione a questo punto? :stanco:

L’errore 137 indica che la memoria è esaurita. Proverei ad aggiungere più swap. Se hai solo 1 GB di RAM, potrei ridimensionarla a 2 GB e forse anche avere 3 o 4 GB di swap.

Potresti provare a eseguire

./launcher start app

Ma sospetto che il database sia migrato troppo lontano per il vecchio container.

Se sei bloccato e desideri supporto a pagamento, consulta Contact Us - Literate Computing

Modifica: Ma ecco cosa farei:

Ciao, stesso errore qui. Per ora, la soluzione temporanea è forzare il parametro version in app.yml a v3.3.0. Arch AMD64, Ubuntu 18.04. È strano che una versione minore sia fallita, l’aggiornamento a v3.3.0 è andato a buon fine la settimana scorsa :neutral_face:

1 Mi Piace

Per chiunque riscontri questo problema e sia disposto a concedermi l’accesso al proprio server, per favore inviatemi un messaggio privato in modo che possa eseguire il debug del problema su un server che presenta il problema. Ho provato in diversi modi e non riesco a riprodurre questo problema, il che rende più difficile risolvere il problema.

5 Mi Piace

Non vedo un modo nel mio profilo per mandarti un messaggio privato…

Devi essere al livello di fiducia 1 per inviare messaggi

Guardando le statistiche nel tuo profilo, ci sei già molto vicino

2 Mi Piace

Per chiunque sia bloccato con questo problema con Discourse non funzionante, ho scoperto che almeno è possibile ripristinare la vecchia versione del forum riavviando la VM ed eseguendo quindi ./launcher start app. Questo comando non funzionerà dopo aver tentato una ricostruzione senza riavviare l’istanza / VM.

Dovrei essere in grado di aggiornare la versione di Ubuntu sulla nostra VM interessata lunedì, quindi terrò tutti aggiornati sull’esito.

1 Mi Piace

Ctrl+c non funziona quando è bloccato, devo riavviare il sistema.

Questo comando non fa nulla.

**/var/discourse**# ./launcher start app

Rilevata architettura x86_64.

ATTENZIONE: il file containers/app.yml è leggibile da tutti. Puoi proteggere questo file eseguendo: chmod o-rwx containers/app.yml

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=techoforum.com -e DISCOURSE_DEVELOPER_EMAILS=techoforumd@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.sendgrid.net -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=apikey -e DISCOURSE_SMTP_PASSWORD=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 -e DISCOURSE_SMTP_DOMAIN=gmail.com -e DISCOURSE_NOTIFICATION_EMAIL=techoforumd@gmail.com -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h discourseonubuntu2004-s-1vcpu-1gb-sfo3-01-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:f8:99:7d:c3:d6 local_discourse/app /sbin/boot

Impossibile trovare l'immagine 'local_discourse/app:latest' localmente

docker: Errore di risposta dal daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

Vedi 'docker run --help'.

Ho un altro forum su un altro droplet e questo non dà alcun problema con l’aggiornamento. È strano perché con la stessa configurazione del server un droplet ha problemi mentre un altro no?

Sembra un problema di RAM. Quanta RAM e swap hai? Aggiungerei uno o due GB di spazio SWAP (e forse aggiungerei RAM se hai solo 1 GB)

Quanta RAM e swap hai su quei sistemi? Qual è l’output di

free -h

E la RAM spiegherebbe perché @tgxworld non è stato in grado di replicarlo.

Sono abbastanza sicuro che il problema sia la RAM/swap.

Tra l’altro, per chiunque si imbatta in questo problema, è possibile aggirarlo per ora aggiungendo base_image: discourse/base:2.0.20240708-0023 all’inizio del file containers/app.yml.

5 Mi Piace

Non sono sicuro che nel mio caso si tratti di un problema di RAM, poiché la VM interessata ha 125 GiB allocati e 78 GB disponibili.

              total        used        free      shared  buff/cache   available
Mem:           125G         14G        940M         31G        110G         78G
Swap:            0B          0B          0B

Il server di sviluppo con lo stesso sistema operativo che è stato aggiornato con successo senza questo problema ha solo 16 GiB di RAM.

1 Mi Piace

Dannazione. Avrebbe spiegato tutto. :person_shrugging:

1 Mi Piace

Potrebbe essere un problema di dimensioni del database?

Il database sul nostro server di produzione è piuttosto grande, ma quello di sviluppo è molto piccolo. Questa è l’unica vera differenza tra le VM che sono state aggiornate con successo e quella interessata (nel mio caso).

Forse, hai modificato la configurazione della memoria per il database?

Quanto è grande il database?

1 Mi Piace

Lo controllerò e vedrò se è cambiato

Questa è l’unica cosa che ha funzionato per me. Grazie per averla condivisa!! Anche i miei clienti vi ringraziano :slight_smile:

Speriamo di ottenere presto una soluzione adeguata.

1 Mi Piace

Ciao,
Ho appena aumentato le dimensioni del mio Droplet raddoppiando la RAM e aumentando le dimensioni del disco. Sto ancora riscontrando lo stesso problema.
C’è qualcos’altro da provare?

# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       289Mi        83Mi        11Mi       1.6Gi       1.5Gi
Swap:         2.0Gi       3.0Mi       2.0Gi

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            941M     0  941M   0% /dev
tmpfs           198M  1.1M  197M   1% /run
/dev/vda1        34G   14G   21G  39% /
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           986M     0  986M   0% /sys/fs/cgroup
/dev/vda15      105M  7.4M   97M   8% /boot/efi
/dev/loop1       56M   56M     0 100% /snap/core18/2829
/dev/loop2       56M   56M     0 100% /snap/core18/2823
/dev/loop3       92M   92M     0 100% /snap/lxd/29619
/dev/loop0       64M   64M     0 100% /snap/core20/2264
/dev/loop4       64M   64M     0 100% /snap/core20/2318
/dev/loop5       39M   39M     0 100% /snap/snapd/21465
/dev/loop6       92M   92M     0 100% /snap/lxd/24061
/dev/loop7       39M   39M     0 100% /snap/snapd/21759
tmpfs           198M     0  198M   0% /run/user/0
overlay          34G   14G   21G  39% /var/lib/docker/overlay2/3c7ebf42647de2b5df34cba2b047079fd3454ea7fe9b04c7b70f227df1e7eafe/merged
1 Mi Piace

OMG! Perché non ho letto questa soluzione prima. Ha funzionato anche per me.
Quindi qual è la soluzione per il futuro? Dobbiamo continuare a specificare questa immagine di base anche in futuro o cambiarla per ottenere un’immagine aggiornata?