È la prima volta che vedo il seguente errore durante il tentativo di ricostruzione.
2022-10-04 14:39:49.780 UTC [1700] FATAL: lock file "postmaster.pid" is empty
2022-10-04 14:39:49.780 UTC [1700] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
Posso ovviamente leggere l’indizio, ma non sono sicuro di come procedere. Qualcuno può offrire qualche spunto?
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57c2a0746e93 local_discourse/app “/sbin/boot” 6 mesi fa Su 16 minuti 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp app
2022-10-04 15:26:43.452 UTC [1699] FATAL: lock file \"postmaster.pid\" is empty
2022-10-04 15:26:43.452 UTC [1699] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
Non ci sono abbastanza dati qui per eseguire il debug.
Questo sta accadendo perché il processo di build pensa che PG sia già in esecuzione, quindi forse qualcosa riguardo al processo di aggiornamento di PG è fuori strada. Puoi includere i log completi del launcher (rimuovendo le password) in modo che possiamo vedere cosa sta succedendo.
Se avessi fermato l’app, mi aspetterei di non vedere alcun lockfile in quella posizione e nessun processo postgres in esecuzione. (Ovviamente, dovrei eseguire il comando ps direttamente sull’host, perché il container non sarebbe più in esecuzione.)
Nella tua situazione, penso che farei prima questo: fermare l’app e verificare che nessun processo postgres sia in esecuzione. Sembra possibile che tu abbia due istanze in esecuzione che si stanno scontrando a vicenda.
È improbabile, ma è anche possibile che il disco si sia riempito ed è per questo che il lockfile è vuoto. O forse c’è un problema di permessi in qualche modo.
Modifica: all’interno del container, il lockfile ha una posizione e una proprietà diverse:
# ./launcher enter app
x86_64 arch detected.
# ls -l /shared/postgres_data/postmaster.pid
-rw------- 1 postgres postgres 92 Nov 15 16:20 /shared/postgres_data/postmaster.pid
# exit
logout
#
Come osserva Sam, avremmo bisogno di vedere maggiori informazioni.