{"action":"created","issue":{"url":"https://api.github.com/repos/celluloid/celluloid-io/issues/165","labels_url":"https://api.github.com/repos/celluloid/celluloid-io/issues/165/labels{/name}","comments_url":"https://api.github.com/repos/celluloid/celluloid-io/issues/165/comments","events_url":"https://api.github.com/repos/celluloid/celluloid-io/issues/165/events","html_url":"https://github.com/celluloid/celluloid-io/issues/165","id":124726878,"number":165,"title":"Celluloid::IO   behaves like a Celluloid Actor failures","user":{"login":"ioquatix","id":30030,"avatar_url":"https://avatars.githubusercontent.com/u/30030?v=3","gravatar_id":"","url":"https://api.github.com/users/ioquatix","html_url":"https://github.com/ioquatix","followers_url":"https://api.github.com/users/ioquatix/followers","following_url":"https://api.github.com/users/ioquatix/following{/other_user}","gists_url":"https://api.github.com/users/ioquatix/gists{/gist_id}","starred_url":"https://api.github.com/users/ioquatix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ioquatix/subscriptions","organizations_url":"https://api.github.com/users/ioquatix/orgs","repos_url":"https://api.github.com/users/ioquatix/repos","events_url":"https://api.github.com/users/ioquatix/events{/privacy}","received_events_url":"https://api.github.com/users/ioquatix/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-04T09:51:40Z","updated_at":"2016-01-05T05:44:18Z","closed_at":null,"body":"```\r\n  2) Celluloid::IO behaves like a Celluloid Actor detects recursion\r\n     Failure/Error:\r\n       fail Celluloid::ThreadLeak, \"Aborted due to runaway threads (#{location})\\n\"\\\r\n         \"List: (#{loose.map(&:inspect)})\\n:#{backtraces.join(\"\\n\")}\"\r\n     \r\n     Celluloid::ThreadLeak:\r\n       Aborted due to runaway threads (after example: detects recursion)\r\n       List: ([\"#<Celluloid::Thread:0x007f965dcaab70@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\", \"#<Celluloid::Thread:0x007f965dca8488@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\", \"#<Celluloid::Thread:0x007f965dc50cb0@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\", \"#<Celluloid::Thread:0x007f965dc318d8@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\"])\r\n       :Runaway thread: ================ #<Celluloid::Thread:0x007f965dcaab70@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\r\n       Backtrace: \r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `sleep'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `block in check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/wait.rb:14:in `for'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:58:in `check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:155:in `block in run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/group.rb:66:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:152:in `run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:131:in `block in start'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-essentials-f0545ce47ed9/lib/celluloid/internals/thread_handle.rb:14:in `block in initialize'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor/system.rb:78:in `block in get_thread'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:50:in `block in instantiate'\r\n     \r\n       Runaway thread: ================ #<Celluloid::Thread:0x007f965dca8488@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\r\n       Backtrace: \r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `sleep'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `block in check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/wait.rb:14:in `for'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:58:in `check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:155:in `block in run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/group.rb:66:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:152:in `run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:131:in `block in start'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-essentials-f0545ce47ed9/lib/celluloid/internals/thread_handle.rb:14:in `block in initialize'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor/system.rb:78:in `block in get_thread'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:50:in `block in instantiate'\r\n     \r\n       Runaway thread: ================ #<Celluloid::Thread:0x007f965dc50cb0@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\r\n       Backtrace: \r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `sleep'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `block in check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/wait.rb:14:in `for'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:58:in `check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:155:in `block in run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/group.rb:66:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:152:in `run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:131:in `block in start'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-essentials-f0545ce47ed9/lib/celluloid/internals/thread_handle.rb:14:in `block in initialize'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor/system.rb:78:in `block in get_thread'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:50:in `block in instantiate'\r\n     \r\n       Runaway thread: ================ #<Celluloid::Thread:0x007f965dc318d8@/Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:47 sleep>\r\n       Backtrace: \r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `sleep'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:63:in `block in check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/wait.rb:14:in `for'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/mailbox.rb:58:in `check'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:155:in `block in run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/timers-41145ed260e4/lib/timers/group.rb:66:in `wait'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:152:in `run'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor.rb:131:in `block in start'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-essentials-f0545ce47ed9/lib/celluloid/internals/thread_handle.rb:14:in `block in initialize'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/actor/system.rb:78:in `block in get_thread'\r\n        ** /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/lib/celluloid/group/spawner.rb:50:in `block in instantiate'\r\n     Shared Example Group: \"a Celluloid Actor\" called from ./spec/celluloid/io/actor_spec.rb:4\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/spec/support/loose_threads.rb:72:in `assert_no_loose_threads!'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bundler/gems/celluloid-85f850a41bb5/spec/support/configure_rspec.rb:48:in `block (2 levels) in <top (required)>'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:424:in `instance_exec'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:424:in `instance_exec'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:389:in `execute_with'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:620:in `block (2 levels) in run_around_example_hooks_for'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:319:in `call'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-retry-0.4.5/lib/rspec/retry.rb:98:in `block in run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-retry-0.4.5/lib/rspec/retry.rb:88:in `loop'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-retry-0.4.5/lib/rspec/retry.rb:88:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-retry-0.4.5/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-retry-0.4.5/lib/rspec/retry.rb:22:in `block (2 levels) in setup'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:424:in `instance_exec'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:424:in `instance_exec'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:389:in `execute_with'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:620:in `block (2 levels) in run_around_example_hooks_for'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:319:in `call'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:621:in `run_around_example_hooks_for'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/hooks.rb:478:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:434:in `with_around_example_hooks'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:477:in `with_around_and_singleton_context_hooks'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example.rb:233:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:581:in `block in run_examples'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:577:in `map'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:577:in `run_examples'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:543:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:544:in `block in run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:544:in `map'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/example_group.rb:544:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:115:in `block (3 levels) in run_specs'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:115:in `map'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:115:in `block (2 levels) in run_specs'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1680:in `with_suite_hooks'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:114:in `block in run_specs'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/reporter.rb:77:in `report'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:113:in `run_specs'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:89:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:73:in `run'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:41:in `invoke'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.1/exe/rspec:4:in `<top (required)>'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `load'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `<main>'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'\r\n     # /Users/samuel/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'\r\n```\r\n\r\nAll \"it behaviour like a  celluloid actor\" crashing like this. Any ideas?"},"comment":{"url":"https://api.github.com/repos/celluloid/celluloid-io/issues/comments/168904967","html_url":"https://github.com/celluloid/celluloid-io/issues/165#issuecomment-168904967","issue_url":"https://api.github.com/repos/celluloid/celluloid-io/issues/165","id":168904967,"user":{"login":"ioquatix","id":30030,"avatar_url":"https://avatars.githubusercontent.com/u/30030?v=3","gravatar_id":"","url":"https://api.github.com/users/ioquatix","html_url":"https://github.com/ioquatix","followers_url":"https://api.github.com/users/ioquatix/followers","following_url":"https://api.github.com/users/ioquatix/following{/other_user}","gists_url":"https://api.github.com/users/ioquatix/gists{/gist_id}","starred_url":"https://api.github.com/users/ioquatix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ioquatix/subscriptions","organizations_url":"https://api.github.com/users/ioquatix/orgs","repos_url":"https://api.github.com/users/ioquatix/repos","events_url":"https://api.github.com/users/ioquatix/events{/privacy}","received_events_url":"https://api.github.com/users/ioquatix/received_events","type":"User","site_admin":false},"created_at":"2016-01-05T05:44:18Z","updated_at":"2016-01-05T05:44:18Z","body":"I think this problem comes from \r\n\r\n    +    Specs.assert_no_loose_threads(ex.description) do\r\n\r\nwhich is now wrapping all specs. So the question is, is this the correct behaviour?"}}