pitluga / subcontractor

rvm aware process launcher for foreman
85 stars 24 forks source link

Thread deadlock when recursively killing pids #11

Open pitluga opened 11 years ago

pitluga commented 11 years ago

When using the slanger example, this is happening with slanger 0.3.4

14:07:26 slanger.1 | /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:39:in ``': deadlock; recursive locking (ThreadError)
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:39:in `find_child_pids'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:32:in `find_pids_to_kill'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:14:in `block (2 levels) in run'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:39:in `call'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:39:in ``'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:39:in `find_child_pids'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:32:in `find_pids_to_kill'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:17:in `block (2 levels) in run'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:19:in `call'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:19:in `eof?'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:19:in `block in run'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:12:in `spawn'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/lib/subcontractor/cli.rb:12:in `run'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/gems/subcontractor-0.4.1/bin/subcontract:5:in `<top (required)>'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/bin/subcontract:19:in `load'
14:07:26 slanger.1 |    from /Users/tonyp/.rvm/gems/ruby-1.9.3-p125@test_shit/bin/subcontract:19:in `<main>'