From: ujihisa@... Date: 2020-07-17T00:07:46+00:00 Subject: [ruby-core:99197] [Ruby master Bug#17033] Infinite Traceback when encountering an Exception while catching an Exception Issue #17033 has been updated by ujihisa (Tatsuhiro Ujihisa). (Oh I see, this and https://bugs.ruby-lang.org/issues/14566#change-71448 were independent) ---------------------------------------- Bug #17033: Infinite Traceback when encountering an Exception while catching an Exception https://bugs.ruby-lang.org/issues/17033#change-86577 * Author: NickHackman (Nick Hackman) * Status: Closed * Priority: Normal * ruby -v: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] * Backport: 2.5: DONTNEED, 2.6: REQUIRED, 2.7: REQUIRED ---------------------------------------- In Ruby 2.7.1 when an Exception occurs and another occurs when handling the first one it results in an infinite Traceback that doesn't mention the error. ```ruby class MyException < StandardError def initialize(obj) @obj = obj end def to_s @obj.to_strm end end begin raise MyException.new('test'), 'message' rescue StandardError => e puts e.to_s end ``` In the above instance, there's a typo `to_strm` doesn't exist for type String, but instead of a normal case of a typo saying that the method doesn't exist the output is ``` ~ �� ruby ruby_traceback_hell.rb Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): ... ``` it keeps going without printing any sort of message about the actual error. It's expected that this would result in a message saying that the method is undefined, and this is the behavior on 2.5.1, and appears to be a regression in 2.7.1 -- https://bugs.ruby-lang.org/ Unsubscribe: