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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>