Parece que he encontrado un problema al ejecutar la última actualización, ya que falla debido a lo siguiente:
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_users_on_username_lower"
DETAIL: Key (username_lower)=(scottie) already exists.
Intenté recuperarme intentando eliminar este usuario accediendo ya sea a la consola de Rails o directamente a la base de datos Postgres, pero sigo obteniendo un error que indica que el servidor no se está ejecutando.
A continuación, se muestra mi intento de ejecutar rails después de iniciar la aplicación:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3743 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
c744729efb7a5813699e2fe8fa46ab551352d45ada8dcb9204121508364f8438
** FAILED TO BOOTSTRAP ** por favor, desplácese hacia arriba y busque mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
root@kForum:/var/discourse# ./launcher start app
starting up existing container
+ /usr/bin/docker start app
app
root@kForum:/var/discourse# ./launcher enter app
root@kForum-app:/var/www/discourse# rails c
bundler: failed to load command: pry (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/pry)
PG::ConnectionBad: could not connect to server: No such file or directory
¿Está el servidor ejecutándose localmente y aceptando
conexiones en el socket de dominio Unix "/var/run/postgresql/.s.PGSQL.5432"?
A continuación, se muestra mi intento de ejecutar postgres:
root@kForum:/var/discourse# ./launcher enter app
root@kForum-app:/var/www/discourse# su discourse
discourse@kForum-app:/var/www/discourse$ psql discourse
psql: error: could not connect to server: No such file or directory
¿Está el servidor ejecutándose localmente y aceptando
conexiones en el socket de dominio Unix "/var/run/postgresql/.s.PGSQL.5432"?
discourse@kForum-app:/var/www/discourse$
Estoy restaurando una instantánea anterior en DigitalOcean para volver a un estado funcional, pero la parte extraña (¿aterradora?) es que incluso restaurar la instantánea no pareció recuperar el sitio y ponerlo en funcionamiento. Esta instantánea se tomó hace más de 24 horas, cuando sé que los foros funcionaban correctamente, por lo que debería no estar relacionado con la actualización que intenté.
En mi instantánea restaurada, este es el error que veo cuando intento detener/iniciar/reiniciar la aplicación:
root@kForum:/var/discourse# ./launcher restart app
+ /usr/bin/docker stop -t 10 app
app
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: container "a1023d05a7b4de25ded1aa69ad49caed9fa59d15fa8e8130d32db82934139e6b": already exists
Error: failed to start containers: app
root@kForum:/var/discourse#
Por último, ejecuté discourse-doctor, y ¿esto parece ser una parte relevante del fallo?
Checking cluster versions ok
The source cluster was not shut down cleanly.
Failure, exiting
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES FAILED
Please visit https://meta.discourse.org/t/postgresql-13-update/172563 for support.
You can run ./launcher start app to restart your app in the meanwhile
FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/root/upgrade_postgres"
c98d1b076faed9b0c728cd944b3f2436afc9e266910b82a644c71fd80b42f073
** FAILED TO BOOTSTRAP ** por favor, desplácese hacia arriba y busque mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
==================== END REBUILD LOG ====================
Failed to rebuild app.
Checking your domain name . . .
Connection to forum.kirupa.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (78a35e0f12e5af560bd1f991ead900fefd0c81570cc4582fe99aaa5e56b238e8): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
Error: failed to start containers: app
Failed to restart the container.
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-sitemap.git
No non-official plugins detected.
See https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.
========================================
Discourse version at forum.kirupa.com: NOT FOUND
Discourse version at localhost: NOT FOUND
¿Qué piensas sobre lo que está ocurriendo aquí? Mi objetivo principal es recuperar los foros. Corregir los fallos de la actualización es mi objetivo secundario.
Gracias,
Kirupa