Bug #16486
closeddynflow may not start with many tasks in pending state, may segfault
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1372708
Description of problem:
If a user has many pending tasks and tries to start foreman-tasks, they may encounter the following stack trace:
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-4.20.0/lib/sequel/dataset/actions.rb:139:
[BUG] Stack consistency error (sp: 325, bp: 324)
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]
-- Control frame information -----------------------------------------------
c:0075 p:0011 s:0325 e:000323 BLOCK
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-4.20.0/lib/sequel/dataset/actions.rb:139
c:0074 p:0008 s:0321 e:000320 BLOCK
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-4.20.0/lib/sequel/adapters/postgres.rb:655
c:0073 p:0021 s:0318 e:000317 BLOCK
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-4.20.0/lib/sequel/adapters/postgres.rb:878
[FINISH]
additionally, they may encounter this error:
E, [2016-09-01T16:50:22.444036 #27074] ERROR --
/connector-database-core: No executor available (Dynflow::Error)
E, [2016-09-01T16:50:22.444318 #27074] ERROR -- /client-dispatcher: No
executor available (Dynflow::Error)
Version-Release number of selected component (if applicable): 6.2.1 (tfm-rubygem-dynflow-0.8.11-1.el6sat.noarch)
How reproducible: not every time, race condition
Steps to Reproduce:
1. get a large number of tasks into pending state (not sure on best way to do this)
2. stop foreman-tasks
3. start foreman-tasks
NOTE: this bz is for a race condition, you may need to test multiple times to repro the bz
Updated by Ivan Necas about 8 years ago
- Subject changed from dynflow may not start with many tasks in pending state, may segfault to dynflow may not start with many tasks in pending state, may segfault
- Status changed from New to Closed
- Pull request https://github.com/Dynflow/dynflow/pull/198 added
Updated by Ivan Necas about 8 years ago
- Target version set to 1.6.1
- Translation missing: en.field_release set to 192