Discourse 사이트의 주간 업데이트를 진행하던 중, 평소 1~2분 걸리던 작업이 이번에는 약 20분이 소요되는 것을 발견했습니다. 또한, $ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate 단계에서 Chrome 콘솔에 타임아웃 오류가 발생하여 진행 상태 업데이트가 일시적으로 중단되었습니다(아래 스크린샷 참조).
서버에서는 postmaster와 간헐적으로 ruby에 부하가 걸리는 것을 확인했으며, 결국 진행 상태 업데이트는 복구되었지만, 현재 마이그레이션에 문제가 있는 것으로 보입니다.
업데이트 로그를 확인한 결과, 긴 실행 시간을 유발한 마이그레이션은 DropTrgmIndexesOnUsers인 것으로 나타났습니다. 해당 로그의 관련 부분을 이 게시글 아래에 직접 포함했으며, 추가 분석이 필요한 경우를 대비해 전체 로그를 텍스트 파일로 첨부했습니다.
********************************************************
*** Please be patient, next steps might take a while ***
********************************************************
...
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-bbcode is already at latest compatible version
discourse-data-explorer is already at latest compatible version
docker_manager is already at latest compatible version
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
Multisite migrator is running using 1 threads
Migrating default
== 20240912061702 DropUserSearchSimilarResultsSiteSetting: migrating ==========
-- execute("DELETE FROM site_settings WHERE name = 'user_search_similar_results';\n")
-> 0.0006s
== 20240912061702 DropUserSearchSimilarResultsSiteSetting: migrated (0.0015s) =
== 20240912061806 DropTrgmIndexesOnUsers: migrating ===========================
-- execute("DROP INDEX IF EXISTS index_users_on_username_lower_trgm;\nDROP INDEX IF EXISTS index_users_on_name_trgm;\n")
-> 1290.7163s
== 20240912061806 DropTrgmIndexesOnUsers: migrated (1290.7169s) ===============
== 20240912212253 IncreaseExternalAvatarUrlLimitTo2000: migrating =============
-- change_column(:single_sign_on_records, :external_avatar_url, :string, {:limit=>2000})
-> 0.0011s
== 20240912212253 IncreaseExternalAvatarUrlLimitTo2000: migrated (0.0017s) ====
Seeding default
*** Bundling assets. This will take a while ***
$ bundle exec rake themes:update assets:precompile
Building
Environment: production
building...
...
전체 로그: upgrade-log-2024-09-15.txt (124.7 KB)
