Regexp:Class에 정의되지 않은 메서드 `timeout='

안녕하세요

웹사이트 관리자 온라인으로 업그레이드를 시도해 보았지만 실패했고, 다음과 같은 오류가 발생합니다:

/var/www/discourse/config/initializers/100-regex-timeout.rb:3:in `<main>': undefined method `timeout=' for Regexp:Class (NoMethodError)

Regexp.timeout = GlobalSetting.regex_timeout_seconds.to_i if GlobalSetting.regex_timeout_seconds.present?
      ^^^^^^^^^^
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:667:in `load'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:667:in `block in load_config_initializer'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4.3/lib/active_support/notifications.rb:208:in `instrument'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:666:in `load_config_initializer'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:620:in `block (2 levels) in <class:Engine>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:619:in `each'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:619:in `block in <class:Engine>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:32:in `instance_exec'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:32:in `run'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:61:in `block in run_initializers'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:228:in `block in tsort_each'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:431:in `each_strongly_connected_component_from'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:50:in `each'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:50:in `tsort_each_child'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:415:in `call'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:415:in `each_strongly_connected_component_from'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:349:in `block in each_strongly_connected_component'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:347:in `each'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:347:in `call'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:347:in `each_strongly_connected_component'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:226:in `tsort_each'
        from /usr/local/lib/ruby/3.1.0/tsort.rb:205:in `tsort_each'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/initializable.rb:60:in `run_initializers'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:372:in `initialize!'
        from /var/www/discourse/config/environment.rb:7:in `<top (required)>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/pry_class.rb:103:in `require'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/pry_class.rb:103:in `block in load_requires'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/pry_class.rb:102:in `each'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/pry_class.rb:102:in `load_requires'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/pry_class.rb:143:in `final_session_setup'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/lib/pry/cli.rb:82:in `parse_options'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/pry-0.14.2/bin/pry:12:in `<top (required)>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/bin/pry:25:in `load'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/bin/pry:25:in `<top (required)>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli/exec.rb:58:in `load'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli/exec.rb:23:in `run'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli.rb:491:in `exec'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli.rb:34:in `dispatch'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/cli.rb:28:in `start'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/exe/bundle:45:in `block in <top (required)>'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
        from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bundler-2.4.4/exe/bundle:33:in `<top (required)>'
        from /usr/local/bin/bundle:25:in `load'
        from /usr/local/bin/bundle:25:in `<main>'

지원되지 않는 설치 환경에서 실행 중인 것 같습니다. 최신 Discourse 코드베이스에서는 Ruby 3.2만 지원합니다.

이 부분의 메시지는 확실히 개선해야 합니다. 앱이 난해한 오류를 표시해서는 안 되니까요.

포럼이 약 1시간 동안 중단된 후 수동으로 업데이트를 완료했습니다. 이 페이지가 정말 유용했거든요.

https://meta.discourse.org/t/manually-update-discourse-and-docker-image-to-latest/23325

@Samir_Sabri, 이 문제를 지적해 주셔서 감사합니다. docker_manager(셀프 호스터가 업그레이드에 사용하는 UI)에서 최소 요구 버전을 아직 업데이트하지 않은 것 같습니다. 이 PR이 병합되면, Discourse를 업그레이드하기 전에 CLI 리빌드를 실행하도록 사용자에게 안내가 표시됩니다: