Rake multisite:migrate가 깨졌습니다

오늘早些에 이 맥락에서 지원 토픽을 생성했지만, 확신이 서지 않아 몇 가지 더 시도하고 조사해 보았습니다. 여기서는 뭔가 매우 잘못되어 보입니다. 멀티사이트 재구축이 다음과 같은 오류로 실패합니다:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate failed with return #<Process::Status: pid 5780 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate"
606e95cb68c244f04807369e0f1f677f54e745905f3c59436d0540e162692184
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

기존 사이트에서 web_only 컨테이너 내에서 rake multisite:migrate를 실행하면 다음과 같은 오류가 발생합니다:

root@discourse-web-only:/var/www/discourse# rake multisite:migrate
Multisite migrator is running using 20 threads

Migrating secondsite
#<Thread:0x000055b1bd94f308@/var/www/discourse/lib/tasks/db.rake:127 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
        9: from /var/www/discourse/lib/tasks/db.rake:132:in `block (2 levels) in execute_concurently'
        8: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:65:in `with_connection'
        7: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:286:in `with_connection'
        6: from /var/www/discourse/lib/tasks/db.rake:134:in `block (3 levels) in execute_concurently'
        5: from /var/www/discourse/lib/tasks/db.rake:156:in `block (2 levels) in <main>'
        4: from /var/www/discourse/lib/site_icon_manager.rb:24:in `ensure_optimized!'
        3: from /var/www/discourse/lib/site_icon_manager.rb:24:in `each'
        2: from /var/www/discourse/lib/site_icon_manager.rb:25:in `block in ensure_optimized!'
        1: from /var/www/discourse/lib/site_icon_manager.rb:73:in `resolve_original'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/core.rb:177:in `find': Couldn't find Upload with 'id'=-6 (ActiveRecord::RecordNotFound)
        4: from /var/www/discourse/lib/tasks/db.rake:132:in `block (2 levels) in execute_concurently'
        3: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:65:in `with_connection'
        2: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:286:in `with_connection'
        1: from /var/www/discourse/lib/tasks/db.rake:135:in `block (3 levels) in execute_concurently'
/var/www/discourse/lib/tasks/db.rake:136:in `rescue in block (3 levels) in execute_concurently': undefined local variable or method `exceptions' for main:Object (NameError)
rake aborted!
NameError: undefined local variable or method `exceptions' for main:Object
/var/www/discourse/lib/tasks/db.rake:136:in `rescue in block (3 levels) in execute_concurently'
/var/www/discourse/lib/tasks/db.rake:135:in `block (3 levels) in execute_concurently'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:286:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:65:in `with_connection'
/var/www/discourse/lib/tasks/db.rake:132:in `block (2 levels) in execute_concurently'
Caused by:
ActiveRecord::RecordNotFound: Couldn't find Upload with 'id'=-6
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/core.rb:177:in `find'
/var/www/discourse/lib/site_icon_manager.rb:73:in `resolve_original'
/var/www/discourse/lib/site_icon_manager.rb:25:in `block in ensure_optimized!'
/var/www/discourse/lib/site_icon_manager.rb:24:in `each'
/var/www/discourse/lib/site_icon_manager.rb:24:in `ensure_optimized!'
/var/www/discourse/lib/tasks/db.rake:156:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/db.rake:134:in `block (3 levels) in execute_concurently'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:286:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:65:in `with_connection'
/var/www/discourse/lib/tasks/db.rake:132:in `block (2 levels) in execute_concurently'
Migrating default
Tasks: TOP => multisite:migrate
(See full trace by running task with --trace)
Migrating thirdsite
== 20200611104600 CreateMissingBadgeIndexes: migrating ========================
-- execute("CREATE INDEX IF NOT EXISTS index_user_badges_on_user_id ON public.user_badges USING btree (user_id)")
   -> 0.0403s
-- execute("CREATE INDEX IF NOT EXISTS index_badges_on_badge_type_id ON public.badges USING btree (badge_type_id)")
   -> 0.0024s
== 20200611104600 CreateMissingBadgeIndexes: migrated (0.0477s) ===============

== 20200617144300 AddPublicFieldToPublishedPages: migrating ===================
-- execute("DELETE FROM schema_migrations WHERE version='20201006172700'\n")
   -> 0.0078s
-- execute("DELETE FROM schema_migrations WHERE version='20201006172701'\n")
   -> 0.0020s
-- execute("ALTER TABLE \"published_pages\" ADD COLUMN IF NOT EXISTS \"public\" boolean DEFAULT FALSE NOT NULL\n")
   -> 0.0262s
== 20200617144300 AddPublicFieldToPublishedPages: migrated (0.0383s) ==========

id가 -6인 업로드가 없다는 동일한 오류가 보고됩니다. 저는 서로 다른 프로바이더의 최소 3개의 테스트 인스턴스에서 이 문제를 겪고 있으므로, 이것이 버그라고 단정할 수 있을 정도로 확신이 섭니다. 제가 잘못 알고 있다면 지적해 주십시오.

1개의 좋아요

현재 저는 latest-release에 대해 멀티사이트 Discourse를 임시로 빌드하고 있으며, 이를 통해 성공적으로 부트스트랩할 수 있습니다. 따라서 이 문제는 2.5.0 beta 7이 릴리스된 이후의 커밋에서 발생한 것으로 보입니다.

@dan 님이 이 문제를 수정했습니다. 여전히 문제가 발생한다면 알려주세요!

3개의 좋아요

보고해 주셔서 감사합니다 :+1: 다음 커밋에서 수정했습니다.

8개의 좋아요

일부 인스턴스를 재구성했는데 모든 것이 정상적으로 보입니다. 문제가 수정되었으므로 이 주제를 닫으셔도 됩니다 :slight_smile:

수정해 주셔서 감사합니다 @tgxworld

2개의 좋아요