Error 500 al publicar, error de tiempo de ejecución de moment.tz

Hola, recientemente me he encontrado con un error al publicar un tema en mi foro de Discourse. He revisado los registros de errores y he encontrado esto, la fecha y hora corresponden a cuando intenté publicar el tema repetidamente. Recibía un mensaje de error 500 error.

Esta imagen muestra un mensaje de error mostrado en una ventana de terminal o editor de código, indicando un error en tiempo de ejecución relacionado con una biblioteca o módulo que no funciona correctamente. (Subtitulado por IA)

Cuando hago clic en el registro de errores, esto es lo que aparece en la sección de salida:

JavaScript en addLocalDate (discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates:24:29)
JavaScript en Object.date [as onMatch] (discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates:44:7)
JavaScript en TextPostProcessRuler.applyRule (discourse-markdown-it/features/text-post-process:56:30)
JavaScript en textPostProcess (discourse-markdown-it/features/text-post-process:109:13)
JavaScript en replacer (discourse-markdown-it/features/text-post-process:122:44)
JavaScript en Object.textReplace (pretty-text/text-replace:62:23)
JavaScript en Array.<anonymous> (discourse-markdown-it/features/text-post-process:123:85)
JavaScript en Core.process (<anonymous>:2606:15)
JavaScript en MarkdownIt.parse (<anonymous>:6887:15)
JavaScript en 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>'

¿Alguien sabe qué significa esto y cómo puedo solucionarlo? Gracias.

Experimentamos este problema en un sitio de Discourse que no se había actualizado. Una actualización parece haber mitigado el problema por ahora, pero estaremos atentos en caso de que vuelva a aparecer.

2 Me gusta

Sí, este error es sorprendente, ¿podría confirmarme qué versión de Discourse está utilizando, por favor?

1 me gusta

Estamos usando version: latest-release
Cuando encontramos este problema, la versión de Discourse era https://github.com/discourse/discourse/commits/v3.3.0.beta2
y no experimentamos esto después de actualizar a la versión https://github.com/discourse/discourse/commits/v3.3.0.beta3

1 me gusta

Parece que mi sitio está en la versión 3.3.0.beta4-dev. Supongo que esto no es para producción. Veo el sufijo dev.

Se supone que debe usarse en producción. Las comunidades alojadas por Discourse también obtienen esas versiones “dev”.
El sufijo dev solo indica que esta no es la versión final de 3.3.0-beta4

4 Me gusta

Una vez que salga la versión final de 3.3.0-beta4, me aseguraré de actualizar e intentarlo de nuevo. Esto parece ocurrir solo en publicaciones específicas que usan una plantilla especial, aunque antes no habíamos encontrado ningún problema con ella. Simplemente está compuesta por botones \u003ckbd\u003e\u003c/kbd\u003e, [details=\"Summary\"][/details] e imágenes. Nada experimental, solo funciones básicas de Discourse.

1 me gusta

Tengo una actualización, logré encontrar la causa. Si inserto una fecha y hora como [date=2024-07-23 timezone="America/New_York"]/[date=2024-07-23 timezone=“America/New_York”]` devolverá el error 500.

¿Alguien sabe una solución? Gracias.

¿Qué versión de Discourse estás utilizando? ¿Conoces el commit? Puedes encontrarlo en la página de origen de tu foro:

Screenshot 2024-07-24 at 09.11.04

¿También ocurre en /safe-mode?

1 me gusta

Hola, para tu pregunta sobre qué versión es 3.3.0.beta5-dev. Para tu pregunta sobre el aspecto de modo seguro, cuando entro en modo seguro, el botón para insertar la fecha/hora desaparece. Creo que esto está relacionado con el plugin Discourse Calendar (and Event).

Dato curioso :discourse: - La función de fecha de inserción forma parte del plugin Local Dates, que viene incluido con Discourse (junto con otros como Discobot, Hide Details, Chat, etc.). Desafortunadamente, al ser un plugin, el modo seguro no_plugins lo deshabilitaría al igual que otros plugins instalados opcionalmente. :frowning:

¿Hay una opción para entrar en modo seguro solo con los plugins no oficiales deshabilitados, junto con la deshabilitación de temas y componentes de temas, que podría valer la pena intentar?

3 Me gusta

Lamentablemente, incluso con esa configuración aplicada, sigue apareciendo el mismo mensaje.


image

1 me gusta

Estoy bastante seguro de que es algo de tu entorno. ¿Sabes si otras personas en este foro pueden hacerlo o si eres el único con este error?

También intenta mirar la pestaña de red de la consola de tu navegador, y también la consola directamente para buscar algún error.

1 me gusta

Le he preguntado a otra persona en el foro y también dijo que recibió un Internal Server Error.

También recibo esto en la consola cuando intento publicar.

¿Quizás relacionado?

Puedes provocar un error en tiempo de ejecución en discourse-local-dates si introduces una zona horaria incorrecta en un date-range:

date funciona con zona horaria incorrecta:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlinx"]
2024-07-25T14:05:00Z

date-range no lo hace:

[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 de aquí, otras fechas no se analizarán:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlin"]
2024-07-25T12:05:00Z

1 me gusta

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.