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>'

Reply via email to