Steps to reproduce:
1) Apply the attached patch[1]
2) Make all processes use the same DB by setting DB_CONN_STRING env variable
3) Run an orchestrator bundle exec sidekiq -c 1 -q dynflow_orchestrator -r ./examples/remote_executor.rb
4) Run a worker bundle exec sidekiq -c 5 -q default -r ./examples/remote_executor.rb
5) Run another worker bundle exec sidekiq -c 5 -q default -r ./examples/remote_executor.rb
6) Trigger the bug bundle exec ruby examples/remote_executor.rb client
Steps to reproduce: 1) Apply the attached patch[1] 2) Make all processes use the same DB by setting DB_CONN_STRING env variable 3) Run an orchestrator bundle exec sidekiq -c 1 -q dynflow_orchestrator -r ./examples/remote_executor.rb 4) Run a worker bundle exec sidekiq -c 5 -q default -r ./examples/remote_executor.rb 5) Run another worker bundle exec sidekiq -c 5 -q default -r ./examples/remote_executor.rb 6) Trigger the bug bundle exec ruby examples/remote_executor.rb client
The job will most likely fail with the following
If not, stop all the processes, recreate the database and try again.
[1] - 0001-Reproducer-for-bug-with-concurrency-control-with-mul.patch