We are using sequel 4.49.0 with delayed_job 4.1.9. Ubuntu 20.04 Ruby 2.6.4 Rvm 1.29.12
When we include a logger in the delayed_job startup script the job succeeds. When we do not include a logger in the delayed_job startup script we get the error (full stack attached): Mysql2::Error: Got packets out of order The mysql2 team wrote back with: You may be sharing a single connection between multiple threads or child processes; this can be OK as long as you manage locking. Each database connection is stateful, so you have to make sure that it goes through a complete login-query-fetchresults-freeresults cycle before another thread can use it. The mysql2 gem does not have a database connection pool manager built-in, usually people use ActiveRecord for this purpose. I'm not as familiar with Sequel, but it should have something to help manage a connection pool. When a delayed_job worker is launched I see two threads start and go away when the job is completed. Below is a snippet of the delayed_job startup script with the logger. Sequel.connect(db_config) logger = Logger.new('/var/log/adhearsion/test.log') Delayed::Worker.backend = :sequel Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 10 Delayed::Worker.max_attempts = 15 Delayed::Worker.max_run_time = 1.hour arguments = ['--pid-dir=/var/run/adhearsion', '--log-dir=/tmp', "--queue=#{this_host}"] arguments.concat(ARGV) Delayed::Command.new(arguments).daemonize I'm perplexed as to why the inclusion of a logger allows the delayed_job to succeed. Also, I'm not sure whether this is a sequel or delayed_job issue. Any information you can provide would be greatly appreciated. Thanks -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to sequel-talk+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/b3278b3d-2432-48f7-beef-7c26c2a72305n%40googlegroups.com.
Mysql2::Error: Got packets out of order /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/logging.rb:76:in `block in log_connection_execute' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/logging.rb:45:in `log_connection_yield' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/logging.rb:76:in `log_connection_execute' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/adapters/shared/mysql.rb:390:in `begin_new_transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:320:in `begin_transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/adapters/shared/mysql.rb:399:in `begin_transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:214:in `_transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:199:in `block in transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/connecting.rb:301:in `block in synchronize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/connection_pool/threaded.rb:107:in `hold' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/connecting.rb:301:in `synchronize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:165:in `transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/model/base.rb:2372:in `checked_transaction' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/model/base.rb:1543:in `block in destroy' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/model/base.rb:2360:in `checked_save_failure' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/sequel-4.49.0/lib/sequel/model/base.rb:1543:in `destroy' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:231:in `block in run' /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/benchmark.rb:308:in `realtime' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:229:in `run' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:312:in `block in reserve_and_run_one_job' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:61:in `block in initialize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:66:in `execute' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:40:in `run_callbacks' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:312:in `reserve_and_run_one_job' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:213:in `block in work_off' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:212:in `times' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:212:in `work_off' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:175:in `block (4 levels) in start' /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/benchmark.rb:308:in `realtime' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:174:in `block (3 levels) in start' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:61:in `block in initialize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:66:in `execute' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:40:in `run_callbacks' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:173:in `block (2 levels) in start' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:172:in `loop' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:172:in `block in start' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:61:in `block in initialize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:79:in `block in add' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:66:in `execute' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/lifecycle.rb:40:in `run_callbacks' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/worker.rb:171:in `start' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:137:in `run' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:125:in `block in run_process' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:275:in `block in start_proc' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/daemonize.rb:84:in `call_as_daemon' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:279:in `start_proc' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:305:in `start' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/controller.rb:56:in `run' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons.rb:199:in `block in run_proc' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/cmdline.rb:121:in `catch_exceptions' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons.rb:198:in `run_proc' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:123:in `run_process' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:104:in `block in daemonize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:102:in `times' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/delayed_job-4.1.9/lib/delayed/command.rb:102:in `daemonize' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/ravon-adhearsion_models-1.12.0/exe/dj_workers_asterisk_user.rb:38:in `<class:CLI>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/ravon-adhearsion_models-1.12.0/exe/dj_workers_asterisk_user.rb:23:in `<module:DelayedJob>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/ravon-adhearsion_models-1.12.0/exe/dj_workers_asterisk_user.rb:22:in `<module:AdhearsionModels>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/ravon-adhearsion_models-1.12.0/exe/dj_workers_asterisk_user.rb:21:in `<module:Ravon>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/gems/ravon-adhearsion_models-1.12.0/exe/dj_workers_asterisk_user.rb:20:in `<top (required)>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/bin/dj_workers_asterisk_user.rb:23:in `load' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/bin/dj_workers_asterisk_user.rb:23:in `<main>' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `eval' /ravon/deploy/adhearsion/shared/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `<main>'