Error while running gem update

H

hweeboon

I've just installed Ruby 1.8.2 on Mac OS X Panther, followed by RubyGem
0.8.10.1. When I try to run "gem update" or "sudo gem update" I get the
following error:

===========
ERROR: While executing gem ... (Errno::ECONNRESET)
Connection reset by peer
===========

I re-ran it and with the option --backtrace* and traced the offending
lines to:

===========
def read_size(uri)
require 'net/http'
require 'uri'
u = URI.parse(uri)
http = connect_to(u.host, u.port)
path = (u.path == "") ? "/" : u.path
resp = http.head(path)
===========

Now I start up irb and run

===========
h = Net::HTTP.new("gems.rubyforge.org", 80)
r=h.head('/yaml')
===========

I get the same error as above. And if I run the following, I get a good
response:

===========
h = Net::HTTP.new("motionobj.com", 80)
r=h.head('/index.htm')
===========

I'm not behind a proxy and I can access http://gems.rubyforge.org/yaml
with a browser (Safari). Does anyone know why? Thanks.


* why are the options specified at the end of the line instead of after
the command? Took me a while to realise that...


HweeBoon
 
A

Assaph Mehr

I've just installed Ruby 1.8.2 on Mac OS X Panther, followed by RubyGem
0.8.10.1. When I try to run "gem update" or "sudo gem update" I get the
following error:

===========
ERROR: While executing gem ... (Errno::ECONNRESET)
Connection reset by peer
===========

I re-ran it and with the option --backtrace* and traced the offending
lines to:

===========
def read_size(uri)
require 'net/http'
require 'uri'
u = URI.parse(uri)
http = connect_to(u.host, u.port)
path = (u.path == "") ? "/" : u.path
resp = http.head(path)
===========

Now I start up irb and run

===========
h = Net::HTTP.new("gems.rubyforge.org", 80)
r=h.head('/yaml')
===========

I get the same error as above. And if I run the following, I get a good
response:

===========
h = Net::HTTP.new("motionobj.com", 80)
r=h.head('/index.htm')
===========

I'm not behind a proxy and I can access http://gems.rubyforge.org/yaml
with a browser (Safari). Does anyone know why? Thanks.

Are you sure you're not behind a proxy? I get good results on both
options.
In the past I've had the same problem where the corporate proxy was
mangling the head requests. Patching it to use #get worked, albeit
slower.
See
http://rubyforge.org/pipermail/rubygems-developers/2005-February/001381.html.
 
H

hweeboon

Thanks for replying. If you mean changing from head to get solves the
problem, I've just tried it, nope. The thing is.. if I can view /yaml
from the browser (with no proxy set), why can't I do the same with
Net::HTTP? Is there any difference?

HweeBoon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top