resque-scheduler icon indicating copy to clipboard operation
resque-scheduler copied to clipboard

Remove circular require for resque from resque-scheduler

Open zzak opened this issue 1 year ago • 1 comments

This resolves the following warning:

BUNDLE_GEMFILE=test/gemfiles/Gemfile-rails-main bundle exec rake test:activejob
/home/zzak/.rbenv/versions/3.3.5/bin/ruby -w -I"lib:test:lib:test/active_job" /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader
.rb "test/active_job/cases/adapter_test.rb"
Using resque
/home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75: warning: /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75: warning: loading in progress
, circular require considered harmful - /home/zzak/code/resque/lib/active_job/queue_adapters/resque_adapter.rb
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:6:in  `<main>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:6:in  `select'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:21:in  `block in <main>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque/test/active_job/cases/adapter_test.rb:3:in  `<top (required)>'
        from /home/zzak/code/resque/test/active_job/cases/adapter_test.rb:3:in  `require_relative'
        from /home/zzak/code/resque/test/active_job/helper.rb:15:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque/test/active_job/adapters/resque.rb:3:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:61:in  `on_load'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:61:in  `each'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:62:in  `block in on_loa
d'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:92:in  `execute_hook'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:87:in  `with_execution_
control'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:97:in  `block in execut
e_hook'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:97:in  `class_eval'
        from /home/zzak/code/resque/test/active_job/adapters/resque.rb:4:in  `block in <top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque/lib/active_job/queue_adapters/resque_adapter.rb:7:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque-scheduler/lib/resque-scheduler.rb:4:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque-scheduler/lib/resque/scheduler/extension.rb:4:in  `<top (required)>'
        from /home/zzak/code/resque-scheduler/lib/resque/scheduler/extension.rb:4:in  `require_relative'
        from /home/zzak/code/resque-scheduler/lib/resque/scheduler/delaying_extensions.rb:2:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'
        from /home/zzak/code/resque/lib/resque.rb:27:in  `<top (required)>'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `block (2 levels) in replace_require'
        from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in  `require'

Run options: --seed 11193

  # Running:

.

Finished in 0.002215s, 451.5588 runs/s, 451.5588 assertions/s.

1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

zzak avatar Nov 01 '24 04:11 zzak

I can't reproduce that one test failure locally, I think it's just flaky and given it's using an EOL version of Ruby and redis v4, I'm not sure it's worth investigating very deeply.

Run bundle exec rake
  bundle exec rake
  shell: /usr/bin/bash -e {0}
  env:
    REDIS_VERSION: ~> 4.x
    RESQUE: master
    RUFUS_SCHEDULER: 3.[2](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:2)
    COVERAGE: 1
===============================================================================
Failure: test_enqueue_at_adds_correct_list_and_zset(DelayedQueue)
/home/runner/work/resque-scheduler/resque-scheduler/test/delayed_queue_test.rb:26:in `block (2 levels) in <top (required)>'
delayed queue should have one entry now
<1> expected but was
<0>
Redis#srem will always return an Integer in Redis 5.0.0. Use Redis#srem? instead.(called from: /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/[3](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:3).0.0/gems/redis-namespace-1.11.0/lib/redis/namespace.rb:56[4](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:4):in `wrapped_send')
Pipelining commands on a Redis instance is deprecated and will be removed in Redis [5](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:5).0.0.

redis.multi do
  redis.get("key")
end

should be replaced by

redis.multi do |pipeline|
  pipeline.get("key")
end

(called from /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/3.0.0/gems/redis-namespace-1.11.0/lib/redis/namespace.rb:5[6](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:6)4:in `wrapped_send'}
Redis#srem will always return an Integer in Redis 5.0.0. Use Redis#srem? instead.(called from: /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/3.0.0/gems/redis-namespace-1.[11](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:12).0/lib/redis/namespace.rb:564:in `wrapped_send')

https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:11

Here's how I tried to repro:

ruby -v
ruby 3.0.7p220 (2024-04-23 revision 724a071175) [x86_64-linux]

REDIS_VERSION="~> 4.x" RUFUS_SCHEDULER="3.2" RESQUE="master" bundle exec rake

zzak avatar Nov 01 '24 04:11 zzak

@zzak If you get a second, can you rebase on master and push this again? I think that instance was fixed in master.

PatrickTulskie avatar Aug 11 '25 00:08 PatrickTulskie