「_theme_qunit_helper」での解析エラー、2.7.0.beta7から2.7.0.beta9へのアップグレード時

また、Discourse の定期アップグレード失敗の時間ですね。

2.7.0.beta7 から 2.7.0.beta9 へ

Docker Manager アプリは Web コンソール経由で問題なくアップグレードできました。

その後、メインアプリのアップグレードを開始しましたが、それが順調に進んでいたところ、以下のようなエラーが発生しました。

2417659.54670619 Compressing: discourse/tests/theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js
uglifyjs '/var/www/discourse/public/assets/discourse/tests/_theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js' -m -c -o '/var/www/discourse/public/assets/discourse/tests/theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js' --source-map "base='/var/www/discourse/public/assets/discourse/tests',root='/assets/discourse/tests',url='/assets/discourse/tests/theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js.map'"
Parse error at _theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js:27887,17
define("sinon", () => {
                 ^
ERROR: Unexpected token: punc «)»
    at JS_Parse_Error.get (eval at <anonymous> (/usr/lib/node_modules/uglify-js/tools/node.js:18:1), <anonymous>:71:23)
    at fatal (/usr/lib/node_modules/uglify-js/bin/uglifyjs:409:27)
    at run (/usr/lib/node_modules/uglify-js/bin/uglifyjs:347:9)
    at Object.<anonymous> (/usr/lib/node_modules/uglify-js/bin/uglifyjs:261:5)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
rake aborted!
Errno::ENOENT: No such file or directory @ rb_file_s_size - /var/www/discourse/public/assets/discourse/tests/theme_qunit_helper-205cf3e536cd4118ac1b02aec22cd3f45e8f74826fa96abeb697c0243882e5d2.js
/var/www/discourse/lib/tasks/assets.rake:290:in `size'
/var/www/discourse/lib/tasks/assets.rake:290:in `block (4 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `block in concurrent?'
/var/www/discourse/lib/tasks/assets.rake:281:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:272:in `each'
/var/www/discourse/lib/tasks/assets.rake:272:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `concurrent?'
/var/www/discourse/lib/tasks/assets.rake:269:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:196:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:104:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.5/lib/rails/commands/runner/runner_command.rb:42:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.5/lib/rails/command/base.rb:69:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.5/lib/rails/command.rb:46:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.5/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
bin/rails:17:in `<main>'
Spinning up 2 Unicorn worker(s) that were stopped initially

この問題を解決するためのヒントがあれば教えていただけませんか?もしかして、Web インターフェースでサポートされている場合でも、CLI 経由で行う必要があるアップグレードだったのでしょうか?(以前も同じようなことで苦労したことがあります)

よろしくお願いします!

ああ、確かに、2.7.0.beta8: Share Topic Modal Improvements, Searchable User Fields, Pause Animated Images, and more に記載されている通り、2.7.0.beta8 は手動での再ビルドが必要だったようです。

Web インターフェースから試して大失敗するまで、/admin/upgrade で「Discourse イメージのバージョンが古いです。最新のイメージを実行するまで、Web UI 経由でのアップグレードは無効化されています」というページが表示されないのは不思議ですね。もし最初にそのメッセージが表示されていたら、試すことすらできなかったでしょう(できませんでした!)。以前はこうだったと確信していたのですが…とにかく、すべて解決しました :slight_smile: