Espero que alguém possa ajudar aqui. Não tive problemas com atualizações do meu fórum, que está rodando em um container Docker na EC2, há mais de 12 meses.
Tentei:
Limpeza do launcher, mas não há problemas com espaço em disco
Último git pull
Várias recompilações do aplicativo
Até tentei um discourse-setup e estava pensando em fazer um restore do banco de dados
Reinício do servidor
apt-get update; apt-get upgrade
Aqui está o final do log:
Concluída a compressão de todos os arquivos JS: 88,88 segundos
rake aborted!
SocketError: Falha ao abrir conexão TCP para geolite.maxmind.com:443 (getaddrinfo: Nenhum endereço associado ao nome de host)
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Causado por:
SocketError: getaddrinfo: Nenhum endereço associado ao nome de host
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Tarefas: TOP => assets:precompile
(Veja o rastreamento completo executando a tarefa com --trace)
I, [2019-12-30T18:56:27.608998 #1] INFO -- : Baixando MaxMindDB...
Comprimindo Javascript e Gerando Source Maps
I, [2019-12-30T18:56:27.633923 #1] INFO -- : Encerrando processos assíncronos
I, [2019-12-30T18:56:27.637383 #1] INFO -- : Enviando INT para HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2019-12-30T18:56:27.639770 #1] INFO -- : Enviando TERM para exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
166:signal-handler (1577732187) Recebeu SIGTERM agendando desligamento...
2019-12-30 18:56:27.639 UTC [49] LOG: recebida solicitação de desligamento rápido
2019-12-30 18:56:27.654 UTC [49] LOG: abortando quaisquer transações ativas
166:M 30 Dec 2019 18:56:27.666 # Usuário solicitou desligamento...
166:M 30 Dec 2019 18:56:27.694 * Salvando o snapshot final do RDB antes de sair.
2019-12-30 18:56:27.702 UTC [49] LOG: processo worker: lançador de replicação lógica (PID 58) saiu com código de saída 1
2019-12-30 18:56:27.711 UTC [53] LOG: desligando
2019-12-30 18:56:27.819 UTC [49] LOG: sistema de banco de dados desligado
166:M 30 Dec 2019 18:56:27.885 * Banco de dados salvo no disco
166:M 30 Dec 2019 18:56:27.886 # Redis agora está pronto para sair, tchau tchau...
FALHA
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile' falhou com retorno #<Process::Status: pid 507 exit 1>
Localização da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
fcf17d793c27c4e87616420ead222cc3f4a9fc163f239a5542b1c9a092579b30
** FALHA NO BOOTSTRAP ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
Realmente espero que alguém possa esclarecer isso.
Agora, damos suporte à maneira oficialmente recomendada de obter bancos de dados, conforme:
Se você deseja receber atualizações regulares do MaxMind, precisará acessar GeoLite sign up | MaxMind para registrar uma conta e gerar uma chave de licença.
Em seguida, você deverá modificar seu container para incluí-la na seção env::
A correção garante que não haja mais nenhuma “bomba-relógio”. Se não houver uma chave de licença, nunca tentaremos baixar os arquivos.
Estamos discutindo com o MaxMind a possibilidade de incluir os bancos de dados atualizados em nossas novas imagens base. Para quem faz hospedagem própria, há duas alternativas, dependendo do resultado:
Sem resolução de IP na página de perfil do usuário e na página de administração até que uma licença seja adicionada.
Resolução de IP desatualizada por até N dias desde que você obteve a imagem base (ou seja, executou ./launcher rebuild app).
É muito provável que a opção (1) seja o resultado para quem faz hospedagem própria.
Também estamos investigando outras alternativas, mas nossas opções são bastante limitadas.
Sou bastante contra adicionar funcionalidades ao núcleo que realizam consultas de IP por meio de um serviço web, pois isso expõe informações a terceiros. Existem apenas duas grandes alternativas reais no mercado, e ambas exigem registro.
@sam Tenho um pequeno pedido de recurso: seria possível adicionar uma configuração no painel de administração para inserir a chave de licença do MaxMind?
Posso confirmar que conseguimos criar uma conta sem problemas. Você precisará entrar em contato com a MaxMind para suporte com questões de conta; não há nada que possamos ajudar aqui.
Obrigado a todos que trabalharam na correção rápida nas últimas semanas. Tive que fazer o mesmo com o Matomo, o que foi muito mais doloroso (manual).
Isso me leva à minha pergunta: Onde exatamente os dados do MaxMind são utilizados? Apenas nos casos de administradores visualizando os endereços IP dos usuários? Alguma outra coisa que não estou lembrando?
Obviamente já tenho a conta do MM, mas estou me perguntando se vale a pena o esforço fazer isso com urgência.
Ele realiza consultas geográficas de endereços IP. Recentemente, realizei várias instalações e atualizações sem configurar uma chave de API, e as reconstruções funcionaram perfeitamente (a versão atual é a beta 10).
Além disso, não é difícil obter uma chave para baixar o banco de dados.
Espero atualizar o discourse-setup para permitir a configuração da chave na próxima semana.
Correto, é utilizado para consulta de IP de usuários pelos administradores. Também para a lista de “dispositivos usados recentemente” nas preferências do usuário e para alertas de administrador quando um novo login é detectado na conta a partir de um local diferente.
Desculpe a intrusão, mas gostaria de perguntar se está previsto manter a possibilidade de desativar a consulta de IP. Parece-me que obrigar os administradores a assinar um serviço de terceiros não é uma boa ideia. Eu mesmo já possuo uma chave de licença para outros usos, então estou falando de forma geral aqui.
Se você não inserir uma chave de licença, ela será desativada. Nada obriga os administradores a configurá-la.
Além disso, caso haja qualquer confusão, o Discourse nunca envia endereços IP para terceiros. O Discourse baixa um banco de dados completo de localizações de IP da MaxMind e realiza a consulta internamente.