Discourse solved 플러그인이 500 오류를 발생시킴

최근 Discourse 버전을 업그레이드했으며 모든 플러그인도 최신 상태로 유지되고 있습니다.
업그레이드 후 답변을 해결책으로 표시하려고 하면 500 오류가 발생합니다.

아래는 콘솔에서 확인되는 오류 세부 정보입니다.

    Failed to load resource: the server responded with a status of 500 ()
_application-ed0ac69…88e883e0db.js:11141 SyntaxError: Unexpected token < in JSON at position 0
    at Function.parse [as parseJSON] (<anonymous>)
    at n (_application-ed0ac69…88e883e0db.js:11137)
    at e.popupAjaxError (_application-ed0ac69…88e883e0db.js:11180)
    at E (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at w (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at g (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at t.invoke (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t._end (ember_jquery-8e338e1…8f98e499a037a9.js:1)
ember_jquery-8e338e1…8f98e499a037a9.js:1 Uncaught 
Object
jqXHR: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
textStatus: "error"
errorThrown: ""
_discourse_displayed: true
__proto__: Object

비공식 플러그인이 설치되어 있나요? 공식 플러그인과 테마만 활성화된 안전 모드에서는 정상 작동하나요?

네, 비공식 플러그인이 설치되어 있고, 세이프모드에서는 확인해 보지 않았습니다 (방법을 모르겠어요 :noobface:)

다만 로그를 확인해 봤더니 다음과 같은 내용이 표시되었습니다.
ArgumentError (unknown keyword: duration) /var/www/discourse/app/models/topic.rb:1138:in 'set_or_create_timer'
(관심 있으시면 백트레이스: https://pastebin.com/chKtDTeL.)

그 후 해결 설정으로 가서 자동 닫기 시간을 0으로 설정했습니다(이전 값 72). 지금은 작동하지만, 이 기능을 실제로 사용하길 원합니다. 도움 주실 수 있나요?

사이트에서 /safe-mode로 이동하면 안전 모드 설정에 접근할 수 있습니다. 화면은 다음과 같습니다:

팀에서 이미 이 방법을 시도해 보았습니다.
· 비공식 플러그인(예: 배지 플러그인)을 비활성화해도 문제가 해결되지 않았습니다.
· 테마(예: 사용자 정의 JavaScript)를 비활성화해도 문제가 해결되지 않았습니다.
· 비공식 플러그인과 테마를 함께 비활성화해도 문제가 해결되지 않았습니다.
안전 모드(safe-mode)를 사용했습니다.

모든 플러그인을 비활성화하는 것은 시도하지 않았습니다. 그렇게 하면 solved 기능도 함께 비활성화되니까요 :grin:

파비온 플러그인이 있나요?

로그에서 발견한 내용과 관련이 있는 것 같습니다. 플러그인 작성자가 마지막으로 업데이트한 내용은 이 것입니다.

pavilion에서 만든 플러그인은 아닙니다

개인 사이트를 최신 버전으로 업데이트하고 solved 플러그인을 활성화했는데, 내 환경에서는 정상적으로 작동합니다. 재현이 되지 않습니다.

문제를 파악한 것 같습니다. 우리는 안정 버전(stable release)을 사용하고 있으며(기본적인 tests-passed가 아님), 이 버전에는 아직 ‘duration’ 변경 사항이 포함되어 있지 않습니다.

확인해 주셔서 정말 감사합니다! 이 기능을 사용하려면 안정화 브랜치가 업데이트될 때까지 기다리는 것이 좋겠습니다.

안녕하세요, 저도 같은 문제를 겪고 있습니다:

Discourse 버전:

제 플러그인 목록:

안전 모드에서도 시도해 봤는데, 결과는 동일합니다.

로그
image

Message

ArgumentError (unknown keyword: duration)
/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'

Backtrace

/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'
/var/www/discourse/plugins/discourse-solved/plugin.rb:126:in `accept_answer!'
/var/www/discourse/plugins/discourse-solved/plugin.rb:206:in `accept'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'

도와주셔서 감사합니다

여러분 안녕하세요,
아이디어가 있으신가요?

특정 discourse 버전을 사용 중이며, 해당 버전에는 해당 기능이 백포트되지 않았을 가능성이 높습니다. solved 플러그인은 최신 tests-passed 브랜치에서 정상적으로 작동하므로, 해당 브랜치로 업그레이드를 고려해 보세요.

왜인가요?
저는 불안정 버전(unstable version)을 사용 중입니다.

제가 이해한 바로는, 안정 버전(stable version)이 Discourse 프로덕션 서버에는 좋은 버전이 아니라는 뜻인가요?

  ## Which Git revision should this container use? (default: tests-passed)
  version: stable

좋은 점은 있지만, 일반적으로 매우 오래되었고 새로운 기능이 부족합니다. 안정성이 충분히 확보되어 있으며 모든 새로운 기능과 성능 개선 사항이 포함되어 있으므로, tests-passed를 사용하는 것이 좋습니다.

네, 답변해 주셔서 감사합니다.

어제 수정을 적용했습니다. discourse-solved 플러그인을 업데이트해 주시고, 문제가 해결되었는지 확인해 주시겠습니까?

안녕하세요 @kris.kotlarek,
이 버전으로 저에게 좋습니다:

감사합니다