Discourse não limpa backups locais temporários após upload para S3

Executando 3.2.0.beta4-dev ( 86da47f58d ) mas já temos esse problema há algum tempo.

Temos backups configurados para ir direto para o S3. Compreensivelmente, a aplicação os leva primeiro para o armazenamento local e depois os carrega para o S3, o que é bom. O problema é que ele não exclui cada backup após o upload, levando a um uso excessivo de espaço, mesmo sem miniaturas salvas dentro dos backups.

root@forum:/var/discourse/shared/standalone/tmp/backups/default# du -sh
57G     .
root@forum:/var/discourse/shared/standalone/tmp/backups/default# du -k
7073520 ./2023-12-28-063845
8040176 ./2023-12-29-063923
8521220 ./2024-01-08-063857
4909616 ./2023-12-24-064434
4918056 ./2024-01-07-064325
7079136 ./2024-01-03-064430
7077984 ./2024-01-02-063855
2949660 ./2024-01-09-063708
59088404        .
root@forum:/var/discourse/shared/standalone/tmp/backups/default# rm -Rf *

Pode ser um problema de permissão no diretório, possivelmente? Eu certamente não o alterei.

root@forum:/var/discourse/shared/standalone/tmp/backups# ls -la
total 12
drwxr-xr-x 3 mas www-data 4096 Nov 23 06:44 .
drwxr-xr-x 4 mas www-data 4096 Nov 22 04:57 ..
drwxr-xr-x 2 mas www-data 4096 Jan  9 15:35 default

O estranho é que, a partir da lista de arquivos temporários, vemos que os dias 2, 3, 7, 8 e 9 de janeiro estão consumindo espaço. Na lista de backups do Discourse na interface de administração, vejo apenas o dia 4 de janeiro. Então, talvez o Discourse esteja fazendo esses backups, mas não os carregando corretamente para o S3? O problema com essa teoria é que a “frequência de backup” está definida como 3 na configuração de administração, então ele não deveria estar tentando fazer backup todos os dias de qualquer maneira. Observe que os logs de backup na interface de administração estão vazios, sem logs lá.

Minha melhor explicação é que, às vezes, o servidor reinicia antes que possa excluir o arquivo de backup local.

A listagem de backup mostra o que está no S3, não no seu disco local.

Alguém está executando um backup manualmente?

O host tem 90 dias de uptime e o container docker tem 6 semanas de uptime, então não houve reinicializações reais, a menos que você esteja falando de algo dentro do aplicativo.

Não faço backups manuais, certamente não um todos os dias. Nada no cron etc. também.

root@forum:/# uptime
 17:20:56 up 90 days,  1:52,  4 users,  load average: 0.81, 1.71, 1.81
root@forum:/# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED       STATUS       PORTS                                                                      NAMES
d8bc34250454   local_discourse/app   \"/sbin/boot\"   6 weeks ago   Up 6 weeks   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app
1 curtida

Ainda está acontecendo, suspiro. Acho que vou usar um cron para find -mtime +2 -delete. Bons tempos.

root@forum:/var/discourse/shared/standalone/tmp/backups/default# du -sh
14G     .
root@forum:/var/discourse/shared/standalone/tmp/backups/default# ls -la
total 16
drwxr-xr-x 4 mas www-data 4096 Jan 16 06:56 .
drwxr-xr-x 3 mas www-data 4096 Nov 23 06:44 ..
drwxr-xr-x 2 mas www-data 4096 Jan 14 06:38 2024-01-14-063807
drwxr-xr-x 2 mas www-data 4096 Jan 15 06:43 2024-01-15-064337
1 curtida

[quote=“Wingtip, post:3, topic:291033”]O host tem 90 dias de uptime e o container docker tem 6 semanas de uptime, então nenhum reinício real, a menos que você esteja falando de algo dentro do aplicativo.
[/quote]

Droga. Essa era a minha melhor suposição.

[quote=“Wingtip, post:4, topic:291033”]Ainda acontecendo, suspiro. Acho que vou usar o cron para um find -mtime +2 -delete. Bons tempos.
[/quote]

Sim. Essa pode ser a solução.

Feito. Não é a solução mais elegante ou satisfatória, mas acho que o problema foi resolvido.

1 curtida

Sim. Acho que é o que farei da próxima vez que tiver esse problema.

2 curtidas