{"action":"created","issue":{"url":"https://api.github.com/repos/rspec/rspec-core/issues/2063","labels_url":"https://api.github.com/repos/rspec/rspec-core/issues/2063/labels{/name}","comments_url":"https://api.github.com/repos/rspec/rspec-core/issues/2063/comments","events_url":"https://api.github.com/repos/rspec/rspec-core/issues/2063/events","html_url":"https://github.com/rspec/rspec-core/pull/2063","id":101677304,"number":2063,"title":"Stop rescuing all exceptions.","user":{"login":"myronmarston","id":49391,"avatar_url":"https://avatars.githubusercontent.com/u/49391?v=3","gravatar_id":"","url":"https://api.github.com/users/myronmarston","html_url":"https://github.com/myronmarston","followers_url":"https://api.github.com/users/myronmarston/followers","following_url":"https://api.github.com/users/myronmarston/following{/other_user}","gists_url":"https://api.github.com/users/myronmarston/gists{/gist_id}","starred_url":"https://api.github.com/users/myronmarston/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myronmarston/subscriptions","organizations_url":"https://api.github.com/users/myronmarston/orgs","repos_url":"https://api.github.com/users/myronmarston/repos","events_url":"https://api.github.com/users/myronmarston/events{/privacy}","received_events_url":"https://api.github.com/users/myronmarston/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-08-18T15:02:19Z","updated_at":"2015-08-21T22:39:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rspec/rspec-core/pulls/2063","html_url":"https://github.com/rspec/rspec-core/pull/2063","diff_url":"https://github.com/rspec/rspec-core/pull/2063.diff","patch_url":"https://github.com/rspec/rspec-core/pull/2063.patch"},"body":"We do want to generally rescue `Exception` and\r\nany subclasses but there are a few exceptions\r\nwe should not rescue. For example, if we rescue\r\n`SystemExit`, it prevents `exit` from exiting.\r\n\r\nAttempted fix for #2058.\r\n\r\nNote that the spec I added failed without these changes and passes with it...but there are some other weird effects that I do not understand:\r\n\r\n```\r\n➜  rspec-core git:(stop-rescuing-all-exceptions) bin/rspec spec/integration\r\nRun options:\r\n  include {:focus=>true}\r\n  exclude {:ruby=>#<Proc:./spec/spec_helper.rb:106>}\r\n\r\nAll examples were filtered out; ignoring {:focus=>true}\r\n\r\nRandomized with seed 9279\r\n...........\r\n\r\nFinished in 2.12 seconds (files took 0.11962 seconds to load)\r\n11 examples, 0 failures\r\n\r\nRandomized with seed 9279\r\n\r\n.......\r\n\r\nFinished in 2.3 seconds (files took 0.11962 seconds to load)\r\n18 examples, 0 failures\r\n\r\nRandomized with seed 9279\r\n```\r\n\r\n```\r\n➜  rspec-core git:(stop-rescuing-all-exceptions) bin/rspec --seed 33805\r\nRun options:\r\n  include {:focus=>true}\r\n  exclude {:ruby=>#<Proc:./spec/spec_helper.rb:106>}\r\n\r\nAll examples were filtered out; ignoring {:focus=>true}\r\n\r\nRandomized with seed 33805\r\n..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F\r\n\r\nPending: (Failures listed here are expected and do not affect your suite's status)\r\n\r\n  1) RSpec::Core::Metadata for an example points :example_group to the same hash object as other examples in the same group\r\n     # Cannot maintain this and provide full `:example_group` backwards compatibility (see GH #1490):(\r\n     Failure/Error: expect(b[:description]).to eq(\"new description\")\r\n\r\n       expected: \"new description\"\r\n            got: \"group\"\r\n\r\n       (compared using ==)\r\n     # ./spec/rspec/core/metadata_spec.rb:138:in `block (3 levels) in <module:Core>'\r\n     # ./spec/support/sandboxing.rb:14:in `block (3 levels) in <top (required)>'\r\n     # ./spec/support/sandboxing.rb:7:in `block (2 levels) in <top (required)>'\r\n\r\nFinished in 8.28 seconds (files took 0.7278 seconds to load)\r\n1399 examples, 0 failures, 1 pending\r\n\r\nRandomized with seed 33805\r\n\r\n....................................................................................................................................................................................................................................................................................................................................................................................................................\r\n\r\nPending: (Failures listed here are expected and do not affect your suite's status)\r\n\r\n  1) RSpec::Core::Metadata for an example points :example_group to the same hash object as other examples in the same group\r\n     # Cannot maintain this and provide full `:example_group` backwards compatibility (see GH #1490):(\r\n     Failure/Error: expect(b[:description]).to eq(\"new description\")\r\n\r\n       expected: \"new description\"\r\n            got: \"group\"\r\n\r\n       (compared using ==)\r\n     # ./spec/rspec/core/metadata_spec.rb:138:in `block (3 levels) in <module:Core>'\r\n     # ./spec/support/sandboxing.rb:14:in `block (3 levels) in <top (required)>'\r\n     # ./spec/support/sandboxing.rb:7:in `block (2 levels) in <top (required)>'\r\n\r\nFailures:\r\n\r\n  1) When an example forks and exits it the subprocess prints the results only once\r\n     Failure/Error: expect(finished_lines.count).to eq(1)\r\n\r\n       expected: 1\r\n            got: 2\r\n\r\n       (compared using ==)\r\n     # ./spec/integration/subprocess_exit_spec.rb:21:in `block (3 levels) in <top (required)>'\r\n     # ./bundle/ruby/2.1.0/gems/aruba-0.6.2/lib/aruba/api.rb:46:in `chdir'\r\n     # ./bundle/ruby/2.1.0/gems/aruba-0.6.2/lib/aruba/api.rb:46:in `in_current_dir'\r\n     # ./spec/integration/subprocess_exit_spec.rb:19:in `block (2 levels) in <top (required)>'\r\n     # ./spec/support/sandboxing.rb:14:in `block (3 levels) in <top (required)>'\r\n     # ./spec/support/sandboxing.rb:7:in `block (2 levels) in <top (required)>'\r\n\r\nFinished in 11.92 seconds (files took 0.7278 seconds to load)\r\n1803 examples, 1 failure, 1 pending\r\n\r\nFailed examples:\r\n\r\nrspec ./spec/integration/subprocess_exit_spec.rb:7 # When an example forks and exits it the subprocess prints the results only once\r\n\r\nRandomized with seed 33805\r\n```\r\n\r\nI'm a bit at a loss for what's causing this.  Anyone from @rspec/rspec got any ideas?"},"comment":{"url":"https://api.github.com/repos/rspec/rspec-core/issues/comments/133581054","html_url":"https://github.com/rspec/rspec-core/pull/2063#issuecomment-133581054","issue_url":"https://api.github.com/repos/rspec/rspec-core/issues/2063","id":133581054,"user":{"login":"xaviershay","id":1714,"avatar_url":"https://avatars.githubusercontent.com/u/1714?v=3","gravatar_id":"","url":"https://api.github.com/users/xaviershay","html_url":"https://github.com/xaviershay","followers_url":"https://api.github.com/users/xaviershay/followers","following_url":"https://api.github.com/users/xaviershay/following{/other_user}","gists_url":"https://api.github.com/users/xaviershay/gists{/gist_id}","starred_url":"https://api.github.com/users/xaviershay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xaviershay/subscriptions","organizations_url":"https://api.github.com/users/xaviershay/orgs","repos_url":"https://api.github.com/users/xaviershay/repos","events_url":"https://api.github.com/users/xaviershay/events{/privacy}","received_events_url":"https://api.github.com/users/xaviershay/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T22:39:17Z","updated_at":"2015-08-21T22:39:17Z","body":"fwiw I always wanted `ctrl+c` to just quit immediately, I never found the do-it-twice requirement helpful :/\r\n\r\n> As for this PR...regardless of if we do anything in particular for the SystemExit case, I think the change here is sound.\r\n\r\nAgree\r\n\r\n> I'd rather spend my limited open source time on other things.\r\n\r\nLegit."}}