Erro 500 ao postar, erro de tempo de execução do moment.tz

Olá, recentemente encontrei um erro ao postar um tópico no meu fórum Discourse. Eu vasculhei os logs de erro e encontrei isso, data e hora correspondentes a quando tentei postar o tópico repetidamente. Eu recebia uma mensagem de erro 500 error para o usuário.

Esta imagem mostra uma mensagem de erro exibida em uma janela de terminal ou editor de código, indicando um erro de tempo de execução relacionado a uma biblioteca ou módulo que não está funcionando corretamente. (Legenda da IA)

Quando clico no log de erro, o seguinte aparece na seção de saída:

JavaScript em addLocalDate (discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates:24:29)
JavaScript em Object.date [as onMatch] (discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates:44:7)
JavaScript em TextPostProcessRuler.applyRule (discourse-markdown-it/features/text-post-process:56:30)
JavaScript em textPostProcess (discourse-markdown-it/features/text-post-process:109:13)
JavaScript em replacer (discourse-markdown-it/features/text-post-process:122:44)
JavaScript em Object.textReplace (pretty-text/text-replace:62:23)
JavaScript em Array.<anonymous> (discourse-markdown-it/features/text-post-process:123:85)
JavaScript em Core.process (<anonymous>:2606:15)
JavaScript em MarkdownIt.parse (<anonymous>:6887:15)
JavaScript em MarkdownIt.render (<anonymous>:6902:38)
mini_racer (0.9.0) lib/mini_racer.rb:228:in `eval_unsafe'
mini_racer (0.9.0) lib/mini_racer.rb:228:in `block (2 levels) in eval'
mini_racer (0.9.0) lib/mini_racer.rb:369:in `timeout'
mini_racer (0.9.0) lib/mini_racer.rb:227:in `block in eval'
mini_racer (0.9.0) lib/mini_racer.rb:225:in `synchronize'
mini_racer (0.9.0) lib/mini_racer.rb:225:in `eval'
lib/pretty_text.rb:235:in `block in markdown'
lib/pretty_text.rb:681:in `block in protect'
lib/pretty_text.rb:681:in `synchronize'
lib/pretty_text.rb:681:in `protect'
lib/pretty_text.rb:173:in `markdown'
lib/pretty_text.rb:298:in `cook'
plugins/poll/lib/poll.rb:327:in `extract'
plugins/poll/lib/polls_validator.rb:15:in `validate_polls'
plugins/poll/plugin.rb:95:in `block (2 levels) in activate!'
lib/new_post_manager.rb:239:in `block in perform'
lib/new_post_manager.rb:238:in `any?'
lib/new_post_manager.rb:238:in `perform'
app/controllers/posts_controller.rb:215:in `create'
actionpack (7.0.8.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.8.4) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.8.4) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.0.8.4) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.8.4) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
activesupport (7.0.8.4) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.8.4) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.8.4) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.8.4) lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack (7.0.8.4) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.8.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.8.4) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.8.4) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.8.4) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.8.4) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.8.4) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method'
actionpack (7.0.8.4) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.8.4) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.8.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.8.4) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.8.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.0.8.4) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.8.4) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.8.4) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster (2.19.1) lib/logster/middleware/reporter.rb:40:in `call'
railties (7.0.8.4) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.8.4) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:360:in `call'
actionpack (7.0.8.4) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
railties (7.0.8.4) lib/rails/engine.rb:530:in `call'
railties (7.0.8.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.8.4) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.9) lib/rack/urlmap.rb:58:in `each'
rack (2.2.9) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Alguém sabe o que isso significa e como posso consertar? Obrigado.

Tivemos esse problema em um site do Discourse que não foi atualizado. Uma atualização parece ter mitigado o problema por enquanto, mas ficaremos atentos caso ele reapareça.

2 curtidas

Sim, este erro é surpreendente, você pode me confirmar qual versão do Discourse você está usando, por favor?

1 curtida

Estamos usando version: latest-release
Quando encontramos este problema, a versão do discourse era https://github.com/discourse/discourse/commits/v3.3.0.beta2
e não experimentamos isso após a atualização para a versão https://github.com/discourse/discourse/commits/v3.3.0.beta3

1 curtida

Parece que meu site está na versão 3.3.0.beta4-dev. Suponho que esta não seja para produção? Vejo o sufixo dev.

Deve ser usado em produção. Comunidades hospedadas pelo Discourse também recebem essas versões “dev”.
O sufixo dev apenas indica que esta não é a versão final de 3.3.0-beta4

4 curtidas

Assim que a versão final do 3.3.0-beta4 for lançada, terei certeza de atualizar e tentar novamente. Isso parece acontecer apenas em posts específicos usando um template especial, embora não tenhamos encontrado nenhum problema com ele antes. Ele é apenas composto por botões <kbd></kbd>, [details="Resumo"][/details] e imagens. Nada experimental, apenas funções principais do Discourse.

1 curtida

Tenho uma atualização, consegui encontrar a causa. Se eu inserir uma data e hora como [date=2024-07-23 timezone="America/New_York"]/[date=2024-07-23 timezone=“America/New_York”]` retornará o erro 500.

Alguém sabe uma solução? Obrigado.

Qual versão do Discourse você está usando? Você conhece o commit? Você pode encontrá-lo na página de origem do seu fórum:

Screenshot 2024-07-24 at 09.11.04

Também acontece em /safe-mode?

1 curtida

Olá, para sua pergunta sobre qual versão é 3.3.0.beta5-dev. Para sua pergunta sobre o aspecto de modo de segurança, quando entro no modo de segurança, o botão para inserir data/hora desaparece. Acho que isso está relacionado ao plugin Discourse Calendar (and Event).

Fato interessante :discourse: - O recurso de data de inserção faz parte do plugin Local Dates, que vem junto com o Discourse (junto com outros como Discobot, Hide Details, Chat, etc.). Infelizmente, por ser um plugin, o modo de segurança no_plugins o desabilitaria assim como outros plugins instalados opcionalmente. :frowning:

Existe uma opção para entrar no modo de segurança com apenas plugins não oficiais desabilitados, além de desabilitar temas e componentes de temas, o que pode valer a pena tentar?

3 curtidas

Infelizmente, mesmo com essas configurações aplicadas, a mesma mensagem ainda aparece.


image

1 curtida

Tenho quase certeza de que isso é algo no seu ambiente. Você sabe se outras pessoas neste fórum conseguem fazer isso ou se você é o único com esse erro?

Tente também olhar a aba de rede do console do seu navegador e também o console diretamente para procurar por algum erro.

1 curtida

Eu perguntei a outra pessoa no fórum e eles também disseram que receberam um Internal Server Error.

Eu também recebo isso no console quando tento postar.

Talvez relacionado?

Você pode acionar um erro de tempo de execução em discourse-local-dates se inserir um fuso horário incorreto em um date-range:

date funciona com fuso horário incorreto:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlinx"]
2024-07-25T14:05:00Z

date-range não funciona:

[date-range from=2024-07-25T15:00:00 to=2024-07-25T17:00:00 timezone="Europe/Berlinx"]
2024-07-25T15:00:00Z2024-07-25T17:00:00Z

A partir daqui, outras datas não serão analisadas:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlin"]
2024-07-25T12:05:00Z

1 curtida

Este tópico foi fechado automaticamente 30 dias após a última resposta. Novas respostas não são mais permitidas.