Erros 502 "Aleatórios"

Tenho uma instalação do Discourse rodando em um servidor GCE. Usuários relataram problemas com o sistema retornando erros 502 aleatoriamente. Consigo replicar a situação clicando nos links Mais Recentes, Novos, Não Lidos, Topo e Categorias. Mais cedo ou mais tarde, um deles retornará um erro 502.

Verifiquei os logs do meu servidor proxy e ele está registrando entradas como esta para as URLs com falha:
“upstream prematurely closed connection while reading response header from upstream”. Há uma quantidade muito grande desses erros, para URLs aparentemente aleatórias.

Aqui estão as etapas que realizei para tentar resolver o problema com base em posts que vi:

  • Atualizei o sistema operacional
  • Atualizei o Docker
  • Atualizei o Discourse
  • Reiniciei o servidor

A instalação original foi feita usando o guia de configuração do Docker Cloud. Em seguida, segui um guia para alternar backups e imagens para usar o S3.

Meu servidor está rodando:
Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-148-generic x86_64)

Conforme o discourse-doctor:

     VERSÃO DO DOCKER: Docker version 18.06.3-ce, build d7080c1

==================== INFORMAÇÕES DE MEMÓRIA ====================
RAM (MB): 4820

             total       used       free     shared    buffers     cached
Mem:          4707       2206       2501        140        101        948
-/+ buffers/cache:       1156       3550
Swap:         2047          0       2047

==================== VERIFICAÇÃO DE ESPAÇO EM DISCO ====================
---------- Espaço em Disco do SO ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   33G   15G  70% /
/dev/sda1        50G   33G   15G  70% /var/lib/docker

==================== INFORMAÇÕES DO DISCO ====================

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *       16065   104856254    52420095   83  Linux
Partition 1 does not start on physical sector boundary.

==================== FIM DAS INFORMAÇÕES DO DISCO ====================

Executei o top e observei os números de CPU e memória, sem ver nada preocupante. Verifiquei os logs e não encontrei nada que aponte para o problema.

Há algum outro detalhe que eu possa fornecer para ajudar na solução do problema? Quais etapas devo seguir para investigar isso?

Obrigado,

Stephen

1 curtida

It could be that Postgres needs a bit more memory. You’ve got plenty, so you might bump db_shared_buffers to 1024MB. You might also bump db_work_mem to 80MB.

Thank you for the suggestion. I made both of those changes in the yml file. Restarting the app didn’t seem to make a difference, so I ended up rebooting the server. Unfortunately I can still replicate the problem.

You need to rebuild or

cd /var/discourse
./launcher destroy app
./launcher start app

for the changes to take effect.

And, this might not be a silver bullet, but I have seen it help.

2 curtidas

So far so good, we’ll monitor and see how this helps. Thank you!

2 curtidas