Isso vem acontecendo há muito tempo — tenho um lembrete mensal no meu calendário para excluir esses arquivos remanescentes. Os logs de backup estão vazios: “Ainda não há logs…” e nada nos logs de erro aponta para problemas com o Amazon S3.
O Discourse é atualizado regularmente e atualmente está na versão 2.9.0.beta14.
Esta é uma instalação padrão, certo? Existe a chance de o sistema operacional (ou outra coisa) estar encerrando o processo de backup durante o upload? Porque mesmo quando há uma falha no backup, o arquivo local deve ser excluído ao final do processo.
Usei um serviço compatível com S3 por um tempo que às vezes resultava em backups sendo deixados no disco local, mas era intermitente.
Você olharia em /var/discourse/shared/standalone/logs/rails/production.log. Ele apenas executaria um backup de linha de comando e veria se ele tem o comportamento de “and”.
Os logs de produção só voltam uma semana, então os backups mais antigos “não excluídos” saem dessa faixa, mas ficarei de olho nos futuros. A única entrada de erro de backup foi esta no log de 30/11:
Started GET \"/.env.backup\" for 3.236.147.46 at 2022-11-29 19:15:57 +0000
ActionController::RoutingError (No route matches [GET] \"/.env.backup\")
Vejo um novo backup não excluído em /var/discourse/shared/standalone/backups/default, mas nada no production.log. Nada no production_errors.log também. Onde mais eu poderia procurar?
P.S. Executei um backup da CLI e o backup foi removido com sucesso - tentarei isso mais algumas vezes para ver se consigo um erro lá.
Não estou tendo sucesso em reproduzir o backup local não excluído via CLI, mas ele continua acontecendo uma ou duas vezes por semana durante o backup noturno. Também não vejo nenhuma saída do log de backup em production.log. Você tem certeza de que é para lá que ele é escrito, @pfaffman?
Eu acho que deveria estar. Quando tive um problema semelhante com algum outro serviço S3, não consegui encontrar erros nem no Discourse nem no serviço deles. E desisti e mudei para algo diferente. Mas você está usando AWS, S3, o verdadeiro negócio, então estou bastante surpreso.
Tentei procurar assim: grep -r "Output file is stored on S3" /var/discourse
como essa frase é a última linha da saída de backup da CLI, mas nada foi encontrado.
Há alguma chance de o servidor reiniciar devido a atualizações automáticas do sistema operacional do host? Elas podem ocorrer enquanto o upload para o S3 está em andamento. Há algo nos logs do seu sistema operacional? Talvez redefinir a configuração do site backup_time_of_day para o valor padrão ou para um horário diferente e ver se o problema desaparece.
Não, o tempo de atividade atual é de 36 dias. Eu suspeitei que o backup do droplet DigitalOcean rodando em paralelo poderia ter sido a causa, mas isso acontece uma vez por semana e meus backups não excluídos ocorrem com mais frequência do que isso.
Tentarei um backup_time_of_day diferente. Estava definido para 2:00 UTC, então veremos se o padrão 3:30 UTC fará alguma diferença.
OOOOH! Essa é boa. Isso explicaria. Aposto que é isso. E o meio da noite é um bom momento para backups e reinicializações. Não explica bem por que o problema desapareceu quando mudei para um serviço diferente, mas talvez minha sorte tenha mudado, ou o que quer que eu tenha mudado era mais rápido ou algo assim.
Dezesseis dias depois, parece que essa foi a solução — não há mais backups não excluídos. Não sei o que estava causando o conflito, mas agora é irrelevante.