Version Check job 在最新的测试都通过的情况下引发异常

Job exception: undefined method \u003e for nil:NilClass

当我检查此属性时:

image

此属性不存在。

回溯:

/var/www/discourse/app/jobs/scheduled/version_check.rb:21:in `execute' 
/var/www/discourse/app/jobs/base.rb:292:in `block (2 levels) in perform' 
rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:279:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:275:in `each' 
/var/www/discourse/app/jobs/base.rb:275:in `perform' 
/var/www/discourse/app/jobs/base.rb:346:in `perform' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:170:in `block (2 levels) in process' 
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:177:in `block in invoke' 
/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call' 
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:179:in `block in invoke' 
sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:182:in `invoke' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:169:in `block in process' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch' 
sidekiq-6.5.9/lib/sidekiq/job_retry.rb:113:in `local' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch' 
sidekiq-6.5.9/lib/sidekiq.rb:44:in `block in <module:Sidekiq>' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:263:in `stats' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch' 
sidekiq-6.5.9/lib/sidekiq/job_logger.rb:13:in `call' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch' 
sidekiq-6.5.9/lib/sidekiq/job_retry.rb:80:in `global' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:124:in `block in dispatch' 
sidekiq-6.5.9/lib/sidekiq/job_logger.rb:39:in `prepare' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:123:in `dispatch' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:168:in `process' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:78:in `process_one' 
sidekiq-6.5.9/lib/sidekiq/processor.rb:68:in `run' 
sidekiq-6.5.9/lib/sidekiq/component.rb:8:in `watchdog' 
sidekiq-6.5.9/lib/sidekiq/component.rb:17:in `block in safe_thread' 
5 个赞

感谢 @merefield - 版本检查服务器需要进行一些调整,才能理解测试通过版本号上的新 -dev 后缀。现在应该可以正常工作了:

[7] pry(main)> Discourse::VERSION::STRING
=> "3.2.0.beta1-dev"
[8] pry(main)> DiscourseHub.discourse_version_check
=> {"success"=>"OK", "latestVersion"=>"3.1.0.beta7", "criticalUpdates"=>false, "missingVersionsCount"=>0}
4 个赞

太棒了!谢谢你,David!

3 个赞

但最新版本不是 3.1.0 beta7,对吗?
服务器仍然返回 3.0.6 作为最新的稳定版本。

4 个赞

没错,你说得完全正确。由于未能正确理解 -dev 后缀,导致服务器未能获取到 GitHub 上上周发布的版本 :facepalm:。感谢 @RGJ

现在在一个 tests-passed 实例上:

[1] pry(main)=> DiscourseHub.discourse_version_check
=> {"success"=>"OK",
 "latestVersion"=>"3.1.0.beta8",
 "criticalUpdates"=>false,
 "missingVersionsCount"=>1,
 "versions"=>
  [{"version"=>"3.1.0.beta8",
    "releasedAt"=>"2023-08-01T08:59:00.000Z",
    "critical"=>false,
    "notes"=>"Read about the release here:\r\n\r\nhttps://meta.discourse.org/t/273443",
    "url"=>"http://www.discourse.org/pricing"}]}

version-check 服务器现在也包含了 3.1.0,所以 stable 应该也没问题。

4 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。