정의되지 않은 메서드 `kilobytes' for "100":String 오류로 주제 및 아바타 동기화 중단

안녕하세요,

내 포럼에서 여러 문제가 발생하고 있으며, 로그에는 동일한 유형의 오류가 나타납니다.

  1. 포럼의 한 토픽이 더 이상 로드되지 않습니다. 다음과 같은 메시지가 표시됩니다(프랑스어입니다):

지금까지 잘 작동했는데, 제가 한 유일한 변경 사항은 설정에서 이미지 크기를 줄였다가 다시 되돌린 것입니다. 이것이 오류의 원인이 될 수 있을까요? 어떻게 수정할 수 있을까요?

누군가 해당 토픽에 접근하려고 할 때의 로그는 다음과 같습니다:

NoMethodError (undefined method `kilobytes' for "100":String) app/models/topic.rb:62:in `thumbnail_info' app/serializers/topic_view_serializer.rb:301:in `thumbnails' (eval):65:in `_fast_attributes' ap
NoMethodError (undefined method `kilobytes' for "100":String) app/models/topic.rb:62:in `thumbnail_info' app/serializers/topic_view_serializer.rb:301:in `thumbnails' (eval):65:in `_fast_attributes' ap
3647
Job exception: undefined method `kilobytes' for "100":String
9:46 am
app/models/topic.rb:62:in `thumbnail_info'
app/serializers/topic_view_serializer.rb:301:in `thumbnails'
(eval):65:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.0.7) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.7) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.7) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:554:in `render_json_dump'
app/controllers/topics_controller.rb:1339:in `block (2 levels) in perform_show_response'
actionpack (7.0.7) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
app/controllers/topics_controller.rb:1329:in `perform_show_response'
app/controllers/topics_controller.rb:187:in `show'
actionpack (7.0.7) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.7) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.0.7) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.7) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n (1.14.1) lib/i18n.rb:322:in `with_locale'
app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport (7.0.7) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.7) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.7) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.7) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.7) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.7) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.7) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.7) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.7) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.3.0) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method' 
actionpack (7.0.7) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.7) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.8) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.8) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.8) lib/rack/head.rb:12:in `call'
actionpack (7.0.7) 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/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.8) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.8) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.7) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster (2.13.1) lib/logster/middleware/reporter.rb:40:in `call'
railties (7.0.7) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.7) 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.7) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.8) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.8) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.3.0) lib/mini_profiler.rb:191:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:233:in `call'
railties (7.0.7) lib/rails/engine.rb:530:in `call'
railties (7.0.7) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.7) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.8) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.8) lib/rack/urlmap.rb:58:in `each'
rack (2.2.8) 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.2.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'
  1. 사용자들이 아바타를 변경할 수 없습니다. 저는 Drupal과 함께 Discourse SSO를 사용하며, discourse_connect_overrides_avatar 옵션이 선택되어 있습니다. 하지만 로그아웃/로그인 후에도 사용자 관리 페이지에서 새로운 URL을 볼 수 있음에도 불구하고 표시되는 아바타는 변경되지 않습니다.

다음과 같은 로그가 나타납니다:

Job exception: undefined method `kilobytes' for "100":String
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:8:in `initialize' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:133:in `new' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:133:in `block (5 levels) in dispatch' 
sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch' 
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch' 
sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch' 
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one' 
sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run' 
sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog' 
sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread' 

감사합니다

이 문제는 과거에 발생했던 것입니다(Issue in uploading media files 및 Bugs appear while i try to upload files (520, 422 Eror)). 확인 차 여쭤보는데, 최근에 Discourse를 업데이트하셨나요? 대시보드에서 버전 링크를 제공해 주시면 정말 큰 도움이 될 것입니다.

제가 사용하는 버전입니다:

3.2.0.beta4-dev

(6f3c498b83)

아직 최신 버전으로 업데이트하지 않았습니다.

업데이트를 하면 이 문제의 수정 사항이 적용되는 것 같습니다. :partying_face:

좋아, 그럼 죄송해요 ^^

걱정 마세요. :slight_smile: 그래도 문제가 해결되지 않으면 알려 주세요.

안녕하세요,

업데이트 이후 깨진 주제가 다시 나타났습니다(좋네요). 하지만 관리 페이지에서 이미지 URL이 올바르게 설정되어 있음에도 불구하고 아바타가 여전히 동기화되지 않습니다.
로그아웃/로그인, 웹 브라우저 캐시 새로고침을 시도해 보았지만 해결되지 않습니다.

음. :thinking: 로그에서 여전히 해당 오류가 발생하고 있나요?

아니요, 그렇지 않습니다. 저는 관련 없는 비권장(deprecation) 경고 몇 가지만 받고 있습니다.

새 아바타의 URL은 가져와지지만, 기존 아바타는 대체되지 않습니다.

문제가 서로 관련이 없는 것 같으니, 이 주제를 해결로 표시하고 새 주제를 여는 것이 나을 수도 있겠네요?

연관이 있을 수 있는 다른 설정이 변경되었습니다. uploaded avatars allowed groups 사이트 설정이 최근 min trust levels 스타일의 설정 대신 groups를 허용하도록 변경되었습니다.

해당 설정을 확인해 보시고, 안에 어떤 그룹이 있는지, 그리고 그룹 페이지에서 가시성을 변경해 보셨는지 확인해 주십시오:

이 설정을 변경한 후 로그아웃/로그인하고 브라우저 캐시를 새로고침했는데, 아바타가 바뀌었습니다.

정말 감사합니다! :meow_heart: