Errore 500 durante l'invio, errore di runtime di moment.tz

Ciao, recentemente ho riscontrato un errore durante la pubblicazione di un argomento sul mio forum Discourse. Ho esaminato i log degli errori e ho trovato questo, data e ora corrispondenti al momento in cui ho provato a pubblicare l’argomento ripetutamente. Ricevevo un messaggio utente di errore 500.

Questa immagine mostra un messaggio di errore visualizzato in una finestra del terminale o dell'editor di codice, che indica un errore di runtime relativo a una libreria o a un modulo che non funziona correttamente. (Didascalia dell'IA)

Quando clicco sul log degli errori, nell’output viene visualizzato quanto segue:

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

Qualcuno sa cosa significa e come posso risolvere il problema? Grazie.

Abbiamo riscontrato questo problema su un sito discourse che non era stato aggiornato. Un aggiornamento sembra aver mitigato il problema per ora, ma terremo d’occhio nel caso in cui si ripresenti.

2 Mi Piace

Sì, questo errore è sorprendente, puoi confermarmi quale versione di Discourse stai usando per favore?

1 Mi Piace

Stiamo utilizzando version: latest-release
Quando abbiamo riscontrato questo problema, la versione di discourse era https://github.com/discourse/discourse/commits/v3.3.0.beta2
e non abbiamo riscontrato questo problema dopo l’aggiornamento alla versione https://github.com/discourse/discourse/commits/v3.3.0.beta3

1 Mi Piace

Sembra che il mio sito sia alla versione 3.3.0.beta4-dev. Presumo che non sia destinata alla produzione? Vedo il suffisso dev.

Dovrebbe essere utilizzato in produzione. Anche le community ospitate da Discourse ottengono quelle versioni “dev”.
Il suffisso dev indica solo che questa non è la versione finale di 3.3.0-beta4

4 Mi Piace

Una volta che la versione finale di 3.3.0-beta4 sarà disponibile, mi assicurerò di aggiornare e riprovare. Questo sembra accadere solo su post specifici che utilizzano un modello speciale, anche se in precedenza non abbiamo riscontrato problemi con esso. È composto solo da pulsanti \u003ckbd\u003e\u003c/kbd\u003e, [details=\"Summary\"][/details] e immagini. Niente di sperimentale, solo funzioni base di Discourse.

1 Mi Piace

Ho un aggiornamento, sono riuscito a trovare la causa. Se inserisco una data e un’ora come [date=2024-07-23 timezone=\"America/New_York\"]/2024-07-23T04:00:00Z restituisce l’errore 500.

Qualcuno conosce una soluzione? Grazie.

Quale versione di Discourse stai usando? Conosci il commit? Puoi trovarlo nella pagina sorgente del tuo forum:

Screenshot 2024-07-24 at 09.11.04

Succede anche in /safe-mode?

1 Mi Piace

Ciao, per la tua domanda su quale versione si tratti 3.3.0.beta5-dev. Per la tua domanda sull’aspetto della modalità sicura, quando entro in modalità sicura il pulsante per inserire data/ora scompare. Penso che questo sia correlato al plugin Discourse Calendar (and Event).

Fatto divertente :discourse: - La funzione di inserimento della data fa parte del plugin Local Dates, che viene fornito con Discourse (insieme ad altri come Discobot, Hide Details, Chat, ecc.). Sfortunatamente, essendo un plugin, la modalità sicura no_plugins lo disabiliterebbe proprio come altri plugin installati opzionalmente. :frowning:

Esiste un’opzione per entrare in modalità sicura disabilitando solo i plugin non ufficiali, oltre a disabilitare temi e componenti tematici, che potrebbe valere la pena provare?

3 Mi Piace

Purtroppo, anche con queste impostazioni applicate, continua a comparire lo stesso messaggio.


image

1 Mi Piace

Sono abbastanza sicuro che sia qualcosa nel tuo ambiente. Sai se altre persone su questo forum possono farlo o se sei l’unico con questo errore?

Prova anche a guardare la scheda di rete della console del tuo browser, e anche la console direttamente per cercare eventuali errori.

1 Mi Piace

Ho chiesto a un’altra persona sul forum e anche loro hanno detto di aver ricevuto un Internal Server Error.

Ricevo anche questo nella console quando provo a pubblicare.

Forse correlato?

È possibile generare un errore di runtime in discourse-local-dates se si inserisce un fuso orario errato in un date-range:

date funziona con fuso orario errato:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlinx"]
2024-07-25T14:05:00Z

date-range no:

[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

Da qui in poi, altre date non verranno analizzate:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlin"]
2024-07-25T12:05:00Z

1 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.