PostgreSQL travado durante a reconstrução

Estou com o mesmo problema… DO Droplet no Ubuntu 20.04. Tentei atualizar o Docker dentro do Discourse primeiro, mas ele continuou dando um erro de código 137. Então, tentei reconstruir o Discourse pela linha de comando e ele travou em O banco de dados está pronto para aceitar conexões. Ctrl+C não fazia nada, então fechei o SSH e abri um novo e iniciei o Discourse novamente e ele ainda estava funcionando, mas não atualizado. Reiniciei o droplet e tentei atualizar o Docker novamente pelo Discourse e desta vez funcionou! Então, tentei reconstruir o Discourse novamente, mas ele ainda travou no mesmo lugar. Fechei o SSH novamente e abri e iniciei o Discourse novamente, mas agora recebo a tela Oops! Então, agora meu Discourse está fora do ar e a única maneira que já consegui recuperar da tela Oops anteriormente foi reconstruindo o aplicativo, o que não consigo fazer!

Então, agora estou perdido, pois minha experiência com Discourse e Droplet é muito limitada e não tenho certeza do que posso fazer agora. docker_manager é o único plugin usado no meu app.yml, então só posso presumir que o erro se deve ao Docker ser uma versão mais nova e não combinar com minha versão do Discourse? Eu não sei. Eu atualizei o Discourse pela última vez em janeiro, então não está tão desatualizado…

Então, meu site está fora do ar até que este problema possa ser resolvido… A menos que eu inicie um novo Droplet e reconfigure tudo novamente e restaure o backup do Discourse que fiz? Essa é minha única opção neste momento? :tired_face:

O erro 137 é falta de memória. Eu tentaria adicionar mais swap. Se você tem apenas 1 GB de RAM, eu poderia redimensionar para 2 GB e talvez também ter 3 ou 4 GB de swap.

Você pode tentar um

./launcher start app

Mas suspeito que o banco de dados migrou muito longe para o contêiner antigo.

Se você estiver preso e quiser suporte pago, veja Contact Us - Literate Computing

Editar: Mas é o que eu faria:

Olá, mesmo erro aqui. Solução alternativa por enquanto é forçar o parâmetro de versão em app.yml para v3.3.0. Arch AMD64, Ubuntu 18.04. Estranho que uma versão menor falhou, a atualização para v3.3.0 passou sem problemas na semana passada :neutral_face:

1 curtida

Para quem estiver encontrando este problema e estiver confortável em me dar acesso ao seu servidor, por favor, me envie uma mensagem privada para que eu possa depurar o problema em um servidor que tenha o problema. Tentei várias maneiras e não consigo reproduzir este problema, o que torna mais difícil implementar uma correção.

5 curtidas

Não vejo uma forma no meu perfil de te enviar uma mensagem privada…

Você precisa estar no nível de confiança 1 para enviar mensagens

Olhando as estatísticas do seu perfil, você já está bem perto

2 curtidas

Para quem estiver com problemas com o Discourse inativo, descobri que você pode pelo menos reativar a versão antiga do fórum reiniciando a VM e executando ./launcher start app. Este comando não funcionará após tentar uma reconstrução sem reiniciar sua instância / VM.

Devo conseguir atualizar a versão do Ubuntu em nossa VM afetada na segunda-feira, então manterei todos informados sobre o resultado.

1 curtida

Ctrl+c não funciona quando está travado, tenho que reiniciar o sistema.

Este comando também não faz nada.

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

x86_64 arch detectado.

AVISO: O arquivo containers/app.yml é legível por qualquer pessoa. Você pode proteger este arquivo executando: 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

Não foi possível encontrar a imagem 'local_discourse/app:latest' localmente

docker: Resposta de erro do 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.

Veja 'docker run --help'.

Tenho outro fórum em outro droplet e ele não apresenta nenhum problema com a atualização. É estranho por que, com a mesma configuração de servidor, um droplet tem problemas enquanto outro não?

Isso parece um problema de RAM. Quanta RAM e swap você tem? Eu adicionaria um ou dois GB de espaço SWAP (e talvez adicionaria RAM se você tiver apenas 1GB)

Quanta RAM e swap você tem nesses sistemas? Qual é a saída de

free -h

E a RAM explicaria por que @tgxworld não conseguiu replicá-lo.

Tenho quase certeza de que RAM/swap é o problema.

A propósito, para quem estiver encontrando este problema, você pode contorná-lo por enquanto adicionando base_image: discourse/base:2.0.20240708-0023 no topo do arquivo containers/app.yml.

5 curtidas

Não tenho certeza se é um problema de RAM no meu caso, pois a VM afetada tem 125 GiB alocados e 78 GB disponíveis.

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

O servidor de desenvolvimento com o mesmo SO que foi atualizado com sucesso sem esse problema tem apenas 16 GiB de RAM.

1 curtida

Puxa. Ia explicar tudo. :person_shrugging:

1 curtida

Pode ser um problema de tamanho do banco de dados?

O banco de dados em nosso servidor de produção é bem grande, mas o de desenvolvimento é muito pequeno. Essa é a única diferença real entre as VMs que foram atualizadas com sucesso e a afetada (no meu caso).

Talvez, você tenha alterado a configuração de memória para o banco de dados?

Qual o tamanho do banco de dados?

1 curtida

Vou verificar e ver se foi alterado

Esta é a única coisa que funcionou para mim. Obrigado por compartilhar isso!! Meus clientes também agradecem :slight_smile:

Esperamos que possamos ter uma correção adequada para isso em breve.

1 curtida

Olá,
Acabei de aumentar o Droplet, dobrando a RAM e aumentando o tamanho do disco. Ainda estou enfrentando o mesmo problema.
Mais alguma coisa para tentar?

# 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 curtida

OMG! Por que eu não li esta solução antes. Funcionou para mim também.
Então, qual é a solução daqui para frente? Precisaremos continuar especificando esta imagem base no futuro ou alterá-la para obter a imagem atualizada?