Tenho uma instância do Discourse que está em funcionamento há uma semana e apresenta alguns dos sintomas mais estranhos que não consigo resolver, em parte porque nada útil aparece nos logs.
O sintoma mais notável é que, se eu entrar nas configurações, alterar uma delas e clicar no marca de verificação verde, a alteração é aceita e tudo parece correto. No entanto, se eu atualizar a página de configurações, há uma boa chance de ela mostrar a configuração antiga ou a nova. Se continuar atualizando, às vezes aparece uma configuração, às vezes a outra.
Pior ainda: não é apenas na tela de configurações em si; às vezes, até a funcionalidade do próprio servidor parece mudar. Por exemplo, se eu tentar fazer upload de um novo logotipo, ele pode às vezes mostrar o antigo e, outras vezes, o novo.
Para responder à pergunta óbvia: não, não estou executando múltiplas instâncias atrás de um balanceador de carga; é uma única instância.
Não tenho certeza se está relacionado, mas também notei que o plugin de matemática do Discourse não é renderizado corretamente. Embora as equações apareçam corretamente na pré-visualização, assim que eu publico, o JavaScript parece não ser incluído e, portanto, não é renderizado adequadamente. O problema com a matemática não é a prioridade aqui, mas estou mencionando-o caso ofereça mais pistas.
Estou realmente sem saída; com todos os logs parecendo normais, nem sei o que postar para obter ajuda. Qualquer ideia seria muito bem-vinda.
Tentei isso sem sucesso. Provavelmente há algo quebrado na forma como estou instalando ou algo assim.
Sou desenvolvedor também. Alguma ideia do que possa estar com defeito em uma instalação que causaria isso? Alguma dica sobre onde depurar e solucionar problemas?
Originalmente, esse foi o processo que segui. Infelizmente, ele não suporta a maioria dos ambientes de produção de nível empresarial que tenho à minha disposição. A maioria dos frameworks opera, inicia e implanta contêineres. Devido à natureza da abordagem de instalação padrão, não é possível trabalhar com essas ferramentas e ambientes.
Por isso, estou tentando aprimorar/corrigir o processo para que ele possa ser instalado em qualquer lugar que suporte uma implantação padrão baseada em Docker. Embora esse esforço esteja funcionando na maior parte, é o bug que postei originalmente que está me causando dificuldades.
Assim que conseguir fazê-lo funcionar, é claro que o disponibilizarei para outros. Passei o último ano esperando que o Discourse suportasse o Docker padrão, mas decidi fazer a contribuição eu mesmo. Estamos tão perto, mas espero que alguém com mais experiência do que eu possa me dizer onde procurar.
Obrigado, isso pode ser muito útil. Como o plugin MathJax parecia funcionar esporadicamente e depois parar, parece provável que seja algo relacionado ao JavaScript.
Acabei de entrar e tentei alterar uma configuração após limpar o cache, observando a aba de rede. Nenhum erro apareceu antes ou depois de alterar uma configuração (mesmo que o bug tenha ocorrido).
Uma razão pela qual não faz sentido que a alteração não esteja sendo aplicada é o comportamento observado. Faço uma alteração, depois atualizo a página e a mudança parece ser revertida. Mas se continuar apenas atualizando (sem tentar fazer a alteração novamente), a mudança aparece cerca de metade das vezes. Toda vez que atualizo, há cerca de 50% de chance de aparecer a configuração antiga ou a nova.
Também encontrei o seguinte erro no console, mas acho que não está relacionado?
Não foi possível encontrar widget actions-summary-item no registro
Tentei isso, como já havia feito antes. Não ajudou. Mas estou cético quanto a ter estado realmente no modo de segurança. Fui até */safe-mode, obtive a caixa de diálogo para entrar no modo de segurança e aceitei. No entanto, notei que o tema Material Design que uso ainda estava sendo exibido. Então, embora eu achasse que estava no modo de segurança, talvez não estivesse realmente?
Dois contêineres: um para o Sidekiq e outro para o núcleo do Discourse. Apenas uma instância do par. Estou executando o PostgreSQL e o Redis como serviços hospedados em máquinas separadas.
Ops. Desculpe, essa foi a pergunta óbvia que você já havia respondido.
Edição: talvez não seja isso também, mas eu tive um problema semelhante quando estava usando um banco de dados Redis que já estava sendo utilizado por outro processo.
Depende do que você quer dizer. Na aba “inspect” de rede para depuração, tudo aparece como 200; o console contém apenas o erro que mencionei acima (provavelmente sem relação). Nos logs do Docker, quando vou fazer a alteração da configuração, vejo o seguinte, confirmando que foi bem-sucedido. No entanto, ao atualizar a página de configurações, 50% das vezes ela mostra a configuração ld e 50% das vezes a nova.
> 2019-08-20T13:14:15.960335498Z Started PUT "/admin/site_settings/categories_topics" for 213.127.19.53 at 2019-08-20 13:14:15 +0000
> 2019-08-20T13:14:15.968667966Z Processing by Admin::SiteSettingsController#update as */*
> 2019-08-20T13:14:15.968951769Z Parameters: {"categories_topics"=>"25", "id"=>"categories_topics"}
> 2019-08-20T13:14:15.978407541Z Rendering text template
> 2019-08-20T13:14:15.978607623Z Rendered text template (0.0ms)
> 2019-08-20T13:14:15.978834745Z Completed 200 OK in 10ms (Views: 0.6ms | ActiveRecord: 0.0ms)
> 2019-08-20T13:18:39.821498901Z [ N 2019-08-20 13:18:39.8209 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6157, application /opt/bitnami/discourse (production)
> 2019-08-20T13:18:59.866033984Z [ N 2019-08-20 13:18:59.8655 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 5973, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:04.848923491Z [ N 2019-08-20 13:19:04.8484 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6018, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:08.900933057Z [ N 2019-08-20 13:19:08.9004 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 5995, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:09.499349110Z [ N 2019-08-20 13:19:09.4989 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6041, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:29.645095032Z Creating scope :open. Overwriting existing method Poll.open.
Não está usando a instalação padrão, embora eu tenha usado como guia para aprender. Basicamente, precisei escrever/modificar os arquivos Docker para fazê-los funcionar com o Docker Compose. Depois que o Docker Compose funcionou localmente, converti para sua forma JSON para que pudesse ser usado com as ferramentas aws-cli.
Portanto, o processo de instalação é uma mudança considerável em relação ao padrão.