From: eregontp@... Date: 2020-11-21T12:39:18+00:00 Subject: [ruby-core:101005] [Ruby master Bug#17305] rb_rescue2() seems to loop forever if given a non-module for rescued exceptions on <= 2.6.6 Issue #17305 has been updated by Eregon (Benoit Daloze). This bug seems to happen on master too, for some platforms, see #17338. ---------------------------------------- Bug #17305: rb_rescue2() seems to loop forever if given a non-module for rescued exceptions on <= 2.6.6 https://bugs.ruby-lang.org/issues/17305#change-88674 * Author: Eregon (Benoit Daloze) * Status: Closed * Priority: Normal * Backport: 2.5: DONTNEED, 2.6: REQUIRED, 2.7: DONTNEED ---------------------------------------- Specifically, ```ruby it "raises TypeError if one of the passed exceptions is not a Module" do -> { @s.rb_rescue2(-> *_ { raise RuntimeError, "foo" }, :no_exc, -> x { x }, :exc, Object.new, 42) }.should raise_error(TypeError, /class or module required/) end ``` in `spec/ruby/optional/capi/kernel_spec.rb` reproduces the issue. Ruby 2.7.0+ seems fine and raises the expected TypeError. ---Files-------------------------------- 0001-Fix-rb_rescue2-when-called-with-non-module.patch (3.76 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: