Falha na atualização

Eu executo o Discourse no Debian 11 com Docker como um único contêiner.

Tentei atualizá-lo usando ./launcher rebuild app

Ele falha com esta mensagem

I, [2023-01-04T20:53:09.920876 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!

Não encontro uma maneira de colocá-lo em funcionamento novamente.

Alguma ideia?

Vejo que o proprietário está errado

drwxr-xr-x 15 sshd             netdev          4096 Jan  4 21:43 .
drwxr-xr-x  3 root             root            4096 Jan  3  2018 ..
drwxr-xr-x  3             1000 www-data        4096 Jan  3  2018 backups
drwxr-xr-x  8 sshd             netdev          4096 Feb  2  2021 letsencrypt
drwxr-xr-x  4 sshd             netdev          4096 Jan  3  2018 log
drwxr-xr-x  2 systemd-timesync systemd-resolve 4096 Jan  3  2018 postgres_backup
drwx------ 19 systemd-timesync systemd-resolve 4096 Jan  4 21:53 postgres_data
drwx------ 19 sshd             netdev          4096 Jan  4 20:49 postgres_data_new
drwxrwsr-x  6 systemd-timesync systemd-resolve 4096 Jan  4 21:53 postgres_run
drwxr-xr-x  2 systemd-resolve  kvm             4096 Jan  4 21:53 redis_data
drwxr-xr-x  2 sshd             netdev          4096 Jan 22  2021 ssl
drwxr-xr-x  2 sshd             netdev          4096 Jan 21  2021 ssl_old
drwxr-xr-x  4 sshd             netdev          4096 Jan  3  2018 state
drwxr-xr-x  4             1000 www-data        4096 Jan  4 21:28 tmp
drwxr-xr-x  4             1000 www-data        4096 Jan  5  2018 uploads

Eu inicio o contêiner usando ./launcher start app. Em seguida, entro no contêiner: ./launcher enter app.

Eu reinicio a propriedade chown -R postgres:postgres /shared/

Depois disso, está corrigido. Mas quando reconstruo o aplicativo novamente, o proprietário está errado novamente…

Este não é o erro, ele estará mais acima, precisaremos ver mais do log.

2023-01-04 20:48:05.355 UTC [41] LOG:  iniciando PostgreSQL 13.9 (Debian 13.9-1.pgdg110+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2023-01-04 20:48:05.377 UTC [41] LOG:  escutando no endereço IPv4 \"0.0.0.0\", porta 5432
2023-01-04 20:48:05.377 UTC [41] LOG:  escutando no endereço IPv6 \"::\", porta 5432
2023-01-04 20:48:05.566 UTC [41] LOG:  escutando no soquete Unix \"/var/run/postgresql/.s.PGSQL.5432\"
2023-01-04 20:48:05.734 UTC [44] LOG:  o sistema de banco de dados foi desligado em 2023-01-04 20:46:17 UTC
2023-01-04 20:48:05.878 UTC [41] LOG:  o sistema de banco de dados está pronto para aceitar conexões
I, [2023-01-04T20:48:09.779985 #1]  INFO -- :
I, [2023-01-04T20:48:09.780390 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2023-01-04 20:48:10.014 UTC [54] postgres@postgres ERROR:  o banco de dados \"discourse\" já existe
2023-01-04 20:48:10.014 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: falha na criação do banco de dados: ERROR:  o banco de dados \"discourse\" já existe
I, [2023-01-04T20:48:10.017003 #1]  INFO -- :
I, [2023-01-04T20:48:10.017425 #1]  INFO -- : > su postgres -c 'psql discourse -c \"create user discourse;\"' || true
2023-01-04 20:48:10.188 UTC [58] postgres@discourse ERROR:  a função \"discourse\" já existe
2023-01-04 20:48:10.188 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  a função \"discourse\" já existe
129:M 04 Jan 2023 20:48:21.224 # Falha ao escutar na porta 6379 (TCP), abortando.

Não vejo outros erros.

:man_shrugging:

Dentro do contêiner, tento iniciar o serviço postgresql e recebo um erro.

root@server /var/discourse # ./launcher enter app
x86_64 arch detected.
root@discourse:/var/www/discourse# service postgresql start
[FAIL] Starting PostgreSQL 13 database server: main[....] Error: Config owner (postgres:105) and data owner (systemd-timesync:101) do not match, and config owner is not root ... failed!
 failed!
root@discourse:/var/www/discourse#

Se você alterou os proprietários dos arquivos dentro da pasta compartilhada, você quebrará a instalação. Uma opção é reinstalar e restaurar um backup, enquanto a outra é corrigir manualmente esses proprietários.

1 curtida

@Falco: obrigado!

Eu alterei os proprietários após a atualização falhar. Encontrei a dica de chown em algum lugar em uma postagem.

Como posso criar um backup no estado atual?

Como posso corrigir os proprietários manualmente?

Obrigado novamente!

Dentro do contêiner, tentei discourse backup. Ele relata que o Redis não está em execução. No log do Redis “atual”, encontrei as seguintes linhas no final…

10316:M 05 Jan 2023 08:05:27.314 # Servidor inicializado
10316:M 05 Jan 2023 08:05:27.314 # AVISO: overcommit_memory está definido como 0! Salvar em segundo plano pode falhar em condições de pouca memória. Para corrigir este problema, adicione 'vm.overcommit_memory = 1' a /etc/sysctl.conf e reinicie ou execute o comando 'sysctl vm.overcommit_memory=1' para que isso tenha efeito.
10316:M 05 Jan 2023 08:05:27.314 # Não é possível lidar com a versão do formato RDB 10
10316:M 05 Jan 2023 08:05:27.314 # Erro fatal ao carregar o DB: Argumento inválido. Saindo.
10321:C 05 Jan 2023 08:05:28.345 # oO0OoO0OoO0Oo Redis está iniciando oO0OoO0OoO0Oo
10321:C 05 Jan 2023 08:05:28.345 # Versão do Redis=6.2.3, bits=64, commit=00000000, modificado=0, pid=10321, recém-iniciado
10321:C 05 Jan 2023 08:05:28.345 # Configuração carregada
10321:M 05 Jan 2023 08:05:28.346 * relógio monotônico: POSIX clock_gettime
10321:M 05 Jan 2023 08:05:28.347 * Modo de execução=standalone, porta=6379.
10321:M 05 Jan 2023 08:05:28.347 # AVISO: A configuração de backlog TCP de 511 não pode ser aplicada porque /proc/sys/net/core/somaxconn está definido como o valor menor de 128.
10321:M 05 Jan 2023 08:05:28.347 # Servidor inicializado
10321:M 05 Jan 2023 08:05:28.347 # AVISO: overcommit_memory está definido como 0! Salvar em segundo plano pode falhar em condições de pouca memória. Para corrigir este problema, adicione 'vm.overcommit_memory = 1' a /etc/sysctl.conf e reinicie ou execute o comando 'sysctl vm.overcommit_memory=1' para que isso tenha efeito.
10321:M 05 Jan 2023 08:05:28.348 # Não é possível lidar com a versão do formato RDB 10
10321:M 05 Jan 2023 08:05:28.348 # Erro fatal ao carregar o DB: Argumento inválido. Saindo.

Eu corrigi as permissões assim (dentro do contêiner):

Depois, reiniciei o contêiner com ./launcher restart app. Agora consigo acessar o Discourse. Mas é a versão antiga 2.8.3 que eu tentei atualizar para 3.0.0.beta16 ontem.

Não tenho certeza de como proceder para atualizar o Discourse.

Acho que meu problema está relacionado a este tópico: Problem upgrading multi-site/multi-containers Discourse instance - #5 by jtraulle

Lembro-me de ter tido problemas de atualização antes, mas nunca os investiguei.

./launcher rebuild app

Consegui definir a versão para 2.9.0.beta2 (id do commit: 88a8584348ed93a28286839bfc1c32b06bd50b3f) definindo o id do commit como “version” em app.yml. Desta vez, a atualização funcionou. Depois disso, consegui atualizar para 3.0.0.beta16.

Obrigado a todos.

5 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.