From: Mitch Williams on
Ran into the following problem with net http in Ruby 187 pl248

require net/http.rb
n = Net::HTTP.new('server-that-is-not-listening-on-port-eighty')
n.request_head('/')

Prior to this change:
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25851 the
above code results in an:

Errno::ECONNREFUSED: Connection refused - connect(2)


After the change I receive:

NoMethodError: undefined method `closed?' for nil:NilClass


From line 1060 of net/http.rb. It looks like the code was intended to close
sockets in the event of an error, but it assumes the socket actually exists
From: hemant on
Hi,

On Thu, Feb 18, 2010 at 6:19 AM, Mitch Williams <mitch(a)socialcast.com> wrote:
> Ran into the following problem with net http in Ruby 187 pl248
>
> require net/http.rb
> n = Net::HTTP.new('server-that-is-not-listening-on-port-eighty')
> n.request_head('/')
>
> Prior to this change:
> http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25851 the
> above code results in an:
>
> Errno::ECONNREFUSED: Connection refused - connect(2)
>
>
> After the change I receive:
>
> NoMethodError: undefined method `closed?' for nil:NilClass
>
>
> From line 1060 of net/http.rb.  It looks like the code was intended to close
> sockets in the event of an error, but it assumes the socket actually exists.
>
> Can anyone else reproduce this issue?
>

Yes, I can reproduce.

Indeed, this looks like unintentional change to me and somewhat
unintuitive. I think, you should file a report on Redmine for this or
raise it on ruby-core mailing list.

From: Mitch Williams on
Thanks for taking the time to respond Hemant.

I've added a redmine ticket for it here
http://redmine.ruby-lang.org/issues/show/2758

On Thu, Feb 18, 2010 at 6:20 AM, hemant <gethemant(a)gmail.com> wrote:

> Hi,
>
> On Thu, Feb 18, 2010 at 6:19 AM, Mitch Williams <mitch(a)socialcast.com>
> wrote:
> > Ran into the following problem with net http in Ruby 187 pl248
> >
> > require net/http.rb
> > n = Net::HTTP.new('server-that-is-not-listening-on-port-eighty')
> > n.request_head('/')
> >
> > Prior to this change:
> > http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25851 the
> > above code results in an:
> >
> > Errno::ECONNREFUSED: Connection refused - connect(2)
> >
> >
> > After the change I receive:
> >
> > NoMethodError: undefined method `closed?' for nil:NilClass
> >
> >
> > From line 1060 of net/http.rb. It looks like the code was intended to
> close
> > sockets in the event of an error, but it assumes the socket actually
> exists.
> >
> > Can anyone else reproduce this issue?
> >
>
> Yes, I can reproduce.
>
> Indeed, this looks like unintentional change to me and somewhat
> unintuitive. I think, you should file a report on Redmine for this or
> raise it on ruby-core mailing list.
>
>


--
+ Mitch Williams
+ Software Engineer
+ Socialcast®

+ 19 South Park
+ San Francisco, CA 94107

+ e: mitch(a)socialcast.com

+ p: 651.964.8521
+ f: 801.348.4750

This e-mail may be privileged and/or confidential, and the sender does not
waive any related rights and obligations. Any distribution, use or copying
of this e-mail or the information it contains by other than an intended
recipient is unauthorized. If you are unsure why this e-mail was sent to
you, please advise me (by return e-mail or otherwise) immediately.