こんにちは、
Discourse の最新バージョン(2.4.0 ベータ7 → ベータ9)へのアップグレード中に問題が発生しました。Docker Manager のアップグレードが以下のステップで繰り返しフリーズします:
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
Spinning up 1 Unicorn worker(s) that were stopped initially
再起動してもアップグレードをリセットしても効果はありません。何か解決策はありますでしょうか?
よろしくお願いいたします、Thommie
サーバーに SSH で接続し、再構築してください。
cd /var/discourse
git pull
./launcher rebuild app
OK、それは役立ちましたが、現在、Linux シェル内の情報と Discourse コンテナの UI 間で不一致が生じています。
管理ページには「インストール済み 2.4.0.beta7、最新 2.4.0.beta9」と表示されていますが、/admin/upgrade ページでは Discourse(latest-release +88)、Docker Manager、プラグインすべてが「最新」と表示されています。
/var/discourse/containers/app.yml には、Discourse UI で表示されているものとは異なるメール設定が記述されています。
リビルド中に何らかの問題が発生しているようです。
Thommie
ビルド中にエラーが発生しましたか?
もし発生している場合は、その情報を共有していただければ、何が問題だったのかを把握する上で非常に役立ちます。
はい、再度ビルドを繰り返しましたが、ログには再構築中に明らかなエラーは見られず、INFO レベルのメッセージのみが表示されています。最後の行は以下の通りです。
2020-01-05 12:01:12.911 UTC [53] LOG: shutting down
166:M 05 Jan 2020 12:01:13.087 * DB saved on disk
166:M 05 Jan 2020 12:01:13.087 # Redis is now ready to exit, bye bye...
2020-01-05 12:01:13.669 UTC [49] LOG: database system is shut down
sha256:da70fb2de1f09e179e7b603a2e3aa17140229011b7af40b28eea4615d3fceeb6
9e56de01e8b7c16e0e24c1221ab32cf161b6b9ecd2e9bfd6f722f5226498d3cc
Removing old container
+ /usr/bin/docker rm app
app
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=de_DE.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=forum.netzwissen.de -e DISCOURSE_DEVELOPER_EMAILS=admin@netzwissen.de -e DISCOURSE_SMTP_ADDRESS=10.10.10.19 -e DISCOURSE_SMTP_PORT=25 -e DISCOURSE_SMTP_USER_NAME= -e DISCOURSE_SMTP_PASSWORD= -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h develd-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:b7:65:5c:bd:c6 local_discourse/app /sbin/boot
7201804f7d5312ceee286af3a5e7db6e3e57a5327504ce752252f238aa9a4e98
私の推測では、これは正常に見えるのですが… ここに表示されているメールパラメータは正しく、app.yml の設定と一致しています。しかし、UI には古いデータが表示されたままです…
これは私には完全に正常に見えます。UI が古いデータを表示する理由が思い当たりません。
…ええ、私も理解できません。コンテナはメール送信に古い設定データを使用しており(そのためメールは配信されません)、リビルド処理の最後の行には正しいターゲット SMTP サーバーが表示されています。
- /usr/bin/docker run -[..]
DISCOURSE_SMTP_ADDRESS=10.10.10.19 -e DISCOURSE_SMTP_PORT=25 -e
DISCOURSE_SMTP_USER_NAME= -e DISCOURSE_SMTP_PASSWORD= -e
つまり、アップデートは失敗しており、Docker コンテナ内では古いバージョンが、app.yml からは古い設定が引き続き使用されていることになります。ただし、アップデートページは異なることを示しています。
これを修正する方法について、何かご存知でしょうか?
tophee
(Christoph)
8
Discourse インスタンス 2 つで同じ問題が発生しています。
最初のエラーは以下のようです:
*** アセットのバンドル中。時間がかかります *** $ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9 bundle exec rake assets:precompile 一時ファイルを削除中 アセットをバンドル中 I, [2020-01-08T13:52:00.932032 #29478] INFO -- : /var/www/discourse/public/assets/docker-manager-app-888922f3ec4fc42543c1916f533f3fecb9af503803eb6b8b59904a2310219d1d.js を書き込み中 I, [2020-01-08T13:52:01.102633 #29478] INFO -- : /var/www/discourse/public/assets/docker-manager-app-5256678af40d7479a0d37d3bddcca6fa5c2505b83a654a6d23e9d6f4f5fd406a.css を書き込み中 I, [2020-01-08T13:52:01.277866 #29478] INFO -- : /var/www/discourse/public/assets/docker-manager-vendor-91af87077979e715f4d5034ea05c612f734c3aece05878051e901d07e84878ee.js を書き込み中 スキップ: vendor-a681e94dd2b8c886f184865617b09b4f67b433321acef2bd98bb99bd9495307e.js はすでに圧縮済みです #<Thread:0x0000559b93cea1d8@/var/www/discourse/lib/tasks/assets.rake:223 run> 例外で終了しました (report_on_exception は true): /usr/local/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect': geolite.maxmind.com:443 への TCP 接続に失敗しました (getaddrinfo: 名前またはサービスが不明です) (SocketError) from /usr/local/lib/ruby/2.6.0/net/http.rb:946:in `block in connect' from /usr/local/lib/ruby/2.6.0/timeout.rb:93:in `block in timeout' from /usr/local/lib/ruby/2.6.0/timeout.rb:103:in `timeout' from /usr/local/lib/ruby/2.6.0/net/http.rb:945:in `connect' from /usr/local/lib/ruby/2.6.0/net/http.rb:930:in
さらに下には以下が表示されています:
docker-manager-vendor-91af87077979e715f4d5034ea05c612f734c3aece05878051e901d07e84878ee.js の圧縮完了: 0.12 秒 全 JS ファイルの圧縮完了: 4.44 秒 rake aborted! SocketError: geolite.maxmind.com:443 への TCP 接続に失敗しました (getaddrinfo: 名前またはサービスが不明です) /var/www/discourse/lib/final_destination.rb:414:in `safe_session' /var/www/discourse/lib/final_destination.rb:365:in `safe_get' /var/www/discourse/lib/final_destination.rb:131:in `get' /var/www/discourse/lib/file_helper.rb:47:in `download' /var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download' /var/www/discourse/lib/tasks/assets.rake:226:in `block (3 levels) in <top (required)>' /var/www/discourse/lib/tasks/assets.rake:225:in `each' /var/www/discourse/lib/tasks/assets.rake:225:in `block (2 levels) in <top (required)>' 原因: SocketError: getaddrinfo: 名前またはサービスが不明です /var/www/discourse/lib/final_destination.rb:414:in `safe_session' /var/www/discourse/lib/final_destination.rb:365:in `safe_get' /var/www/discourse/lib/final_destination.rb:131:in `get' /var/www/discourse/lib/file_helper.rb:47:in `download' /var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download' /var/www/discourse/lib/tasks/assets.rake:226:in `block (3 levels) in <top (required)>' /var/www/discourse/lib/tasks/assets.rake:225:in `each' /var/www/discourse/lib/tasks/assets.rake:225:in `block (2 levels) in <top (required)>' タスク: TOP => assets:precompile (詳細なトレースは、タスクを --trace で実行して確認してください) Docker Manager: アップグレードに失敗しました #<RuntimeError: RuntimeError> /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:159:in `run' /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:81:in `upgrade' /var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:95:in `block in upgrade' /var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:91:in `fork' /var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:91:in `upgrade' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:inbox_tray:
再構築を試してみますが、まだこれらのアップグレード問題の原因が何なのか気になっています…