From: Eric Wong Date: 2017-01-11T22:01:04+00:00 Subject: [ruby-core:79060] Re: [Ruby trunk Bug#13018] end of file reached (EOFError) from SMTP shugo@ruby-lang.org wrote: > Assignee changed from Shugo Maeda to Eric Wong > > Toby Murray wrote: > > Yields `end of file reached (EOFError)`. From the discussion there, it seems like the SMTP relay is inappropriately killing the session, but I believe it should be wrapped in a different error - e.g. Net:SMTPError. As it stands, there's no stack trace available or this error, so it just appears and is difficult to find. > > The reason why no stack trace is available is the following code introduced by r50219: > > # callers do not care about backtrace, so avoid allocating for it > raise EOFError, 'end of file reached', [] > > Eric, is it intentional that stack trace is lost in this case? (Sorry, I missed this earlier, feel free to Cc: me directly if I fail to respond). Yes, it was my intention to avoid allocations since I remember callers would not care; but it looks like I was wrong... > Speaking of Net::SMTP, EOFError is raised in do_finish, so it may be better to ignore. > However, it's too late to change the behavior in Ruby 2.4.0, I think. If caller needs backtrace, then yes, we should preserve stack trace. EOFError is much rarer than IO::Wait*able, however, so less of a performance problem. Unsubscribe: