# Ruby from source on Leopard excruciatingly slow internet talk

**URL:** <https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865>\
**Category:** Ruby\
**Created:** [January 13, 2008, 1:39am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865 "2008-01-13T01:39:55Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 13, 2008, 1:39am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/1 "2008-01-13T01:39:55Z")

</div>

Just a couple of days ago I “upgraded” from Tiger to Leopard, and the  
most horrible thing about it is that anything Ruby does over the  
internet is so very very slow now. `which ruby` tells me I’m still  
using my from-source install in /usr/local/bin, as does `which gem`.

I have a script that scrapes some stuff from craigslist that now takes  
way too long (I might as well look myself). And my heart sinks when I  
see “Updating metadata for 176 gems from [http://gems.rubyforge.org](http://gems.rubyforge.org)”.  
That seriously takes forever (a little hyperbole). Nothing else is  
suffering huge network slowness. Even a simple “require ‘open-uri’;  
open(‘[http://www.google.com](http://www.google.com)’)” takes 15 seconds (but half a second  
tops in a browser). This all happened at a reasonable pace just a few  
days ago. Other ruby installations on other machines (with other  
operating systems) talk to the internet with appropriate quickness.

I know one other person who’s experienced this, but with no solution.  
Anyone else? I haven’t found similar stories, but maybe that’s because  
no one else is having this problem, or the solution is so obvious no  
one bothers to mention it.

Any pointers or ideas would be hugely appreciated.

Thanks,  
Chris

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 13, 2008, 1:45am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/2 "2008-01-13T01:45:46Z")

</div>

This may not help you but I was having a slow-as-molasses DNS lookup  
issue when I upgraded to Leopard. I disabled IPv6 and it sped things  
up considerably. Anyhow, it’s a change that might help and is easy to  
undo.

HTH

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 13, 2008, 1:48am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/3 "2008-01-13T01:48:06Z")

</div>

On Jan 12, 2008, at 4:39 PM, Chris S. wrote:

> open(‘[http://www.google.com](http://www.google.com)’)" takes 15 seconds (but half a second
> 
> Thanks,  
> Chris

Try adding this to your script:

# for OSX compatibility

Socket.do\_not\_reverse\_lookup = true

Cheers-

- Ezra Z.  
– Founder & Software Architect  
– removed\_email\_address@domain.invalid  
– [EngineYard.com](http://EngineYard.com)

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 14, 2008, 11:45pm UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/4 "2008-01-14T23:45:13Z")

</div>

could try the macport ruby

Chris S. wrote:

> Just a couple of days ago I “upgraded” from Tiger to Leopard, and the  
> most horrible thing about it is that anything Ruby does over the  
> internet is so very very slow now. `which ruby` tells me I’m still  
> using my from-source install in /usr/local/bin, as does `which gem`.

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 14, 2008, 10:52pm UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/5 "2008-01-14T22:52:53Z")

</div>

> ```
> Try adding this to your script:
> 
> ```
> 
> # for OSX compatibility
> 
> Socket.do\_not\_reverse\_lookup = true

Any idea where to patch rubygems?

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 15, 2008, 5:23am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/6 "2008-01-15T05:23:29Z")

</div>

On Jan 14, 2008, at 9:14 PM, s.ross wrote:

> I’ve had almost exactly the same experience. Really slow internet  
> connectivity in general. I think I have it narrowed down to  
> wireless using WEP. I hooked up an old fashioned ethernet cable  
> (remember those?) and everything is lickety split fast. HTH.

me too. this a leoTard issue. in general i’m finding it to be  
sucking the big one for networking - you can see the same behavior  
with curl as you’ll find in ruby.

i also disabled ipv6 and am using opendns for lookups. still slower  
than tiger though.

a @ [http://codeforpeople.com/](http://codeforpeople.com/)

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 15, 2008, 7:12am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/7 "2008-01-15T07:12:35Z")

</div>

ara.t.howard wrote:

> On Jan 14, 2008, at 9:14 PM, s.ross wrote:
> 
> > I’ve had almost exactly the same experience. Really slow internet  
> > connectivity in general. I think I have it narrowed down to  
> > wireless using WEP. I hooked up an old fashioned ethernet cable  
> > (remember those?) and everything is lickety split fast. HTH.
> 
> me too. this a leoTard issue. in general i’m finding it to be  
> sucking the big one for networking - you can see the same behavior  
> with curl as you’ll find in ruby.
> 
> i also disabled ipv6 and am using opendns for lookups. still slower  
> than tiger though.
> 
> a @ [http://codeforpeople.com/](http://codeforpeople.com/)

I had this problem too and found some bogus DNS servers had creeped into  
Network Setup, even though everything had been set to DCHP before (and I  
assumed after) the upgrade. My guess was that network was waiting for  
them to timeout before contacting my real DNS server. Key symptom is  
eons to start loading a page/download a file/whatever, but normal  
performance once the activity actually starts.

I know it sounds noob, but check to make sure there aren’t any  
unexpected DNS Servers in System Prefs → Network → Advanced (for the  
correct interface) → DNS.

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 15, 2008, 7:29am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/8 "2008-01-15T07:29:40Z")

</div>

On Jan 14, 2008, at 8:22 PM, ara.t.howard wrote:

> am using opendns for lookups

I tried opendns until the first bad lookup (address not in dns) when  
opendns hijacked the request and redirected my browser to an ad. It  
just seems creepy to have your dns lookups spoofed like that.

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 15, 2008, 5:14am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/9 "2008-01-15T05:14:43Z")

</div>

I’ve had almost exactly the same experience. Really slow internet  
connectivity in general. I think I have it narrowed down to wireless  
using WEP. I hooked up an old fashioned ethernet cable (remember  
those?) and everything is lickety split fast. HTH.

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [January 15, 2008, 11:53am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/10 "2008-01-15T11:53:43Z")

</div>

On 15 Jan 2008, at 04:22, ara.t.howard wrote:

> with curl as you’ll find in ruby.
> 
> i also disabled ipv6 and am using opendns for lookups. still slower  
> than tiger though.

I had a problem like that. For some reason removing all locations from  
the network prefs and adding them back in fixed it for some reason.

Fred

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 4, 2008, 1:28am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/11 "2008-02-04T01:28:36Z")

</div>

I am having this problem too, I’ve tried disabling IPv6 and I’ve put the  
Socket. thing in my configuration and it’s still slow.

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 4, 2008, 6:57am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/12 "2008-02-04T06:57:31Z")

</div>

Bryce R. wrote:

> I am having this problem too, I’ve tried disabling IPv6 and I’ve put the  
> Socket. thing in my configuration and it’s still slow.

could try  
require ‘resolv-replace’

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 4, 2008, 6:03pm UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/13 "2008-02-04T18:03:08Z")

</div>

require ‘resolv-replace’

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 6, 2008, 4:31am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/14 "2008-02-06T04:31:26Z")

</div>

Roger P. wrote:

> require ‘resolv-replace’

somehow my editing /etc/hosts once (took some hosts out), worked faster,  
then adding them back in and it still worked fast. Weird.  
Somebody elsewhere also said that doing the ‘assist me’ in networking  
preferences fixed their problem. Who knows what it really is 🙂  
-Roger

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 4, 2008, 7:23am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/15 "2008-02-04T07:23:39Z")

</div>

Roger P. wrote:

> Bryce R. wrote:
> 
> > I am having this problem too, I’ve tried disabling IPv6 and I’ve put the  
> > Socket. thing in my configuration and it’s still slow.
> 
> could try  
> require ‘resolv-replace’

Then it comes up with this:  
LoadError: no such file to load – resolve-replace  
from  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom\_require.rb:27:in  
`gem_original_require' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in`require’  
from (irb):1

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 4, 2008, 9:05pm UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/16 "2008-02-04T21:05:36Z")

</div>

On Jan 12, 5:39 pm, Chris S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Any pointers or ideas would be hugely appreciated.

After some pointers and ideas, things are running much faster. What  
I’ve done:

1. Disabled IPv6 (thanks s.ross)
2. OpenDNS for lookup (thanks Ara, though those redirects on failed  
lookups suck)
3. Started requiring ‘resolv-replace’ (thanks Roger P.)

I’m using Ruby and the Internet together at near Tiger speeds. I added  
“require ‘resolv-replace’” to /usr/local/bin/gem as well, and I’m no  
longer scared of “Updating metadata for 132 gems from  
[http://gems.rubyforge.org](http://gems.rubyforge.org)”

Thanks everyone. Hopes this thread helps anyone else having similar  
issues.

Chris

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 8, 2008, 8:29am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/17 "2008-02-08T08:29:11Z")

</div>

I had success with  
require ‘resolv-replace’

# for OSX compatibility

Socket.do\_not\_reverse\_lookup = true

is there a way I can have this enabled by default accross all scripts?

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 6, 2008, 5:00am UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/18 "2008-02-06T05:00:48Z")

</div>

laughably, the following script (which overwrites your /etc/hosts file  
periodically with one or two entries)  
seems to help.  
I probably wouldn’t really recommend this unless you really know what  
you’re doing, but here it is

count = 0  
loop do  
a = File.open ‘/etc/hosts’, ‘w’  
a.write ‘127.0.0.1 localhost’ + “\n”  
a.write ‘127.0.0.1 localhost2’ + “\n” if (count%2) == 1  
a.close  
sleep 0.5  
count += 1  
end

(save this as a file like ‘renew\_etc.rb’, save a copy of your /etc/hosts  
file somewhere, then run  
sudo ruby renew\_etc.rb)  
You could try changing the sleep value.  
Note that running this may have unforeseen effects.  
I wouldn’t believe it if it didn’t seem to work.

Note that the default /etc/hosts file is

## 

# Host Database

# 

# localhost is used to configure the loopback interface

# when the system is booting. Do not change this entry.

## 

127.0.0.1 localhost  
255.255.255.255 broadcasthost  
::1 localhost  
fe80::1%lo0 localhost

if you need to recreate it.  
GL.  
-Roger

---

<div class="post-metadata">

**Author:** ![yetanothergeek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8e8cbc/32.png) [@yetanothergeek](https://www.ruby-forum.com/u/yetanothergeek)\
**Post date:** [February 8, 2008, 6:34pm UTC](https://www.ruby-forum.com/t/ruby-from-source-on-leopard-excruciatingly-slow-internet-talk/125865/19 "2008-02-08T18:34:18Z")

</div>

Bryce R. wrote:

> I had success with  
> require ‘resolv-replace’
> 
> # for OSX compatibility
> 
> Socket.do\_not\_reverse\_lookup = true
> 
> is there a way I can have this enabled by default accross all scripts?

you could add that code to the lib included when you run  
require ‘rubygems’  
as that is always loaded for app
