Closed dgroup closed 4 years ago
Let's try to use this approach https://stackoverflow.com/questions/11248808/connection-pool-issue-with-activerecord-objects-in-rufus-scheduler
Reproduced
test "sqlite connection pool size" do
CLI::App.new(Log::NOTHING, Schedule.new(Log::NOTHING, false)).run(
home: ".",
sqlite: "test/resources/#{no_ext(__FILE__)}.#{__method__}.db",
vcs4sql: "upgrades/sqlite",
testdata: true
)
Threads.new(10).assert do
refute_empty ORM::Task.find(1).props
end
end
Here is the error
Testing started at 3:15 PM ...
/bin/zsh -c "bash -c 'env RBENV_VERSION=2.6.5 /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv exec bundle exec ruby '\"'\"'-Ilib:test'\"'\"' /Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb --name /test_sqlite_connection_pool_size/'"
Started with run options --name /test_sqlite_connection_pool_size/ --seed 57848
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.005 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.005 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.005 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.005 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.006 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.006 seconds); all pooled connections were in use
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:221:in `block in wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `wait_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:171:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:297:in `internal_poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `block in poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:175:in `synchronize'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:166:in `poll'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:875:in `acquire_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:290:in `cached_find_by_statement'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3/lib/active_record/core.rb:171:in `find'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:81:in `block (2 levels) in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:57:in `block (3 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:53:in `block (2 levels) in assert'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
Minitest::UnexpectedError: RuntimeError: Only 4 out of 10 threads completed successfully
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:70:in `assert'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:79:in `block in <class:AppTest>'
/Users/yurii.dubinka/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/threads-0.3.0/lib/threads.rb:70:in `assert'
/Users/yurii.dubinka/projects/rlazylead/test/lazylead/cli/app_test.rb:79:in `block in <class:AppTest>'
Finished in 5.64803s
1 tests, 8 assertions, 0 failures, 1 errors, 0 skips
Coverage report generated for Unit Tests to /Users/yurii.dubinka/projects/rlazylead/coverage. 353 / 677 LOC (52.14%) covered.
Line coverage (52.14%) is below the expected minimum coverage (75.00%).
SimpleCov failed with exit 2
Process finished with exit code 2
This works fine, thus it might be a fix
test "sqlite connection pool size" do
CLI::App.new(Log::NOTHING, Schedule.new(Log::NOTHING, false)).run(
home: ".",
sqlite: "test/resources/#{no_ext(__FILE__)}.#{__method__}.db",
vcs4sql: "upgrades/sqlite",
testdata: true
)
Threads.new(10).assert do
ActiveRecord::Base.connection_pool.with_connection do # <<
refute_empty ORM::Task.find(1).props
end
end
end