게시 시 500 오류 발생, moment.tz 런타임 오류

최근 Discourse 포럼에서 주제를 게시할 때 오류가 발생하고 있습니다. 오류 로그를 살펴본 결과, 주제를 반복적으로 게시하려고 시도한 시점과 일치하는 날짜와 시간이 포함되어 있었습니다. 이때 500 error라는 사용자 메시지가 표시되었습니다.

이 이미지는 터미널 또는 코드 편집기 창에 표시된 오류 메시지를 보여줍니다. 라이브러리 또는 모듈이 올바르게 작동하지 않음과 관련된 런타임 오류를 나타냅니다. (AI가 캡션을 작성함)

오류 로그를 클릭하면 출력 섹션에 다음 내용이 표시됩니다:

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>'

이것이 무슨 의미인지, 그리고 어떻게 수정할 수 있는지 아는 분이 계신가요? 감사합니다.

업데이트가 적용되지 않은 Discourse 사이트에서 이 문제를 경험했습니다. 업데이트로 인해 현재로서는 문제가 완화되었지만, 다시 발생할 경우를 대비해 주시하고 있습니다.

2개의 좋아요

네, 이 오류는 놀랍네요. 사용 중인 Discourse 버전을 확인해 주시겠어요?

1개의 좋아요

저희는 version: latest-release를 사용하고 있습니다.
이 문제를 경험했을 당시의 discourse 버전은 https://github.com/discourse/discourse/commits/v3.3.0.beta2였고, https://github.com/discourse/discourse/commits/v3.3.0.beta3 버전으로 업데이트한 후에는 이 문제가 발생하지 않았습니다.

1개의 좋아요

제 사이트가 3.3.0.beta4-dev 버전을 사용하고 있는 것 같습니다. 이 버전은 프로덕션 환경에 사용하도록 의도된 것이 아닌 것 같은데, dev 접미사가 보이기 때문이죠.

이것은 프로덕션 환경에서 사용되도록 설계되었습니다. Discourse가 호스팅하는 커뮤니티도 이러한 “dev” 버전을 받게 됩니다.
dev 접미사는 이것이 3.3.0-beta4의 최종 버전이 아님을 나타낼 뿐입니다.

4개의 좋아요

최종 버전인 3.3.0-beta4가 나오면 업데이트를 하고 다시 시도하겠습니다. 이 문제는 특별한 템플릿을 사용하는 특정 게시물에서만 발생하는 것으로 보이지만, 이전에는 아무런 문제가 없었습니다. 내용은 <kbd></kbd> 버튼, [details="Summary"][/details]
` 및 이미지로만 구성되어 있습니다. 실험적인 내용은 없으며, 핵심 Discourse 기능만 사용하고 있습니다.

1개의 좋아요

업데이트가 있습니다. 원인을 찾았습니다. [date=2024-07-23 timezone="America/New_York"]/[date=2024-07-23 timezone=“America/New_York”]와 같은 날짜와 시간을 입력하면 500 오류가 반환됩니다.

해결 방법을 아는 분이 있을까요? 감사합니다.

어떤 버전의 Discourse를 사용하고 계신가요? 커밋을 알고 계신가요? 포럼의 소스 페이지에서 확인할 수 있습니다:

Screenshot 2024-07-24 at 09.11.04

또한 /safe-mode에서도 발생하는지 확인해 보셨나요?

1개의 좋아요

안녕하세요, 버전에 대한 질문에 답변드리면 3.3.0.beta5-dev입니다. 안전 모드에 대한 질문에 대해서는, 안전 모드로 진입하면 날짜/시간 삽입 버튼이 사라집니다. 이는 Discourse Calendar (and Event) 플러그인과 관련이 있다고 생각합니다.

재미있는 사실 :discourse: - 삽입 날짜(insert date) 기능은 로컬 날짜(Local Dates) 플러그인의 일부이며, 이 플러그인은 Discourse에 기본으로 번들링되어 제공됩니다(Discobot, Hide Details, Chat 등 다른 플러그인들과 함께). 불행히도 플러그인인 특성상, safe mode의 no_plugins 옵션은 다른 선택적으로 설치된 플러그인들과 마찬가지로 이 기능도 비활성화시킵니다. :frowning:

공식 플러그인만 비활성화하고 테마 및 테마 컴포넌트도 함께 비활성화하는 safe mode 옵션이 있으니, 이 방법을 시도해 볼 가치가 있을지도 모릅니다?

3개의 좋아요

불행히도 해당 설정을 적용해도 여전히 같은 메시지가 팝업으로 표시됩니다.


image

1개의 좋아요

이 문제는 환경 설정과 관련된 것일 가능성이 높습니다. 이 포럼의 다른 사용자들도 같은 작업을 수행할 수 있는지, 아니면 오직 귀하만 이 오류를 겪고 있는지 아시나요?

또한 브라우저 콘솔의 네트워크 탭과 콘솔 자체를 직접 확인하여 오류가 있는지 살펴보세요.

1개의 좋아요

포럼에서 다른 사람에게도 물어봤는데, 그 사람도 Internal Server Error를 받았다고 합니다.

저도 게시글을 작성하려고 할 때 콘솔에 이 메시지가 표시됩니다.

관련이 있을까요?

date-range에서 잘못된 시간대를 입력하면 discourse-local-dates에서 런타임 오류가 발생합니다:

잘못된 시간대에서도 date는 작동합니다:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlinx"]
2024-07-25T14:05:00Z

date-range는 작동하지 않습니다:

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

이 시점부터는 다른 날짜가 파싱되지 않습니다:
[date=2024-07-25 time=14:05:00 timezone="Europe/Berlin"]
2024-07-25T12:05:00Z

1개의 좋아요

이 주제는 마지막 답변 후 30일이 지나면 자동으로 닫힙니다. 새로운 답변은 더 이상 허용되지 않습니다.