# Bad file descriptor error using Net::HTTP

**URL:** <https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034>\
**Category:** Ruby\
**Created:** [June 28, 2007, 4:21pm UTC](https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034 "2007-06-28T16:21:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 28, 2007, 4:21pm UTC](https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034/1 "2007-06-28T16:21:39Z")

</div>

I am trying to access a .net page via my ruby app and pass it a couple  
parameters. Every thing I have tried has resulted in this Bad file  
descriptor, I am wondering if it is something wrong with my  
configuration, not the code. Here is the code that is causing  
problems:

Net::HTTP.version\_1\_2  
Net::HTTP.start(‘[www.url.com](http://www.url.com)’, 80) {  
|http|  
response =  
http.post(‘/DoSomething.aspx’,  
‘id=#{params[:id]}&path=#{params[:imagerecord]}’,  
{ ‘Content-Type’ =\> ‘application/x-www-form-  
urlencoded’ })  
puts response.body()  
}

Here is the error I get:

Errno::EBADF (Bad file descriptor - connect(2)):  
c:/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize' c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect’  
c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout' c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout’  
c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect' c:/ruby/lib/ruby/1.8/net/http.rb:553:in `do\_start’  
c:/ruby/lib/ruby/1.8/net/http.rb:542:in `start' c:/ruby/lib/ruby/1.8/net/http.rb:440:in `start’

I am on Windows 2003 serer with Ruby 1.8.4 and Mongrel. Any help would  
be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 28, 2007, 4:58pm UTC](https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034/2 "2007-06-28T16:58:45Z")

</div>

On Jun 28, 8:20 am, removed\_email\_address@domain.invalid wrote:

> ```
> http.post('/DoSomething.aspx',
> c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
> c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout'
> c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
> c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
> c:/ruby/lib/ruby/1.8/net/http.rb:553:in `do_start'
> c:/ruby/lib/ruby/1.8/net/http.rb:542:in `start'
> c:/ruby/lib/ruby/1.8/net/http.rb:440:in `start'
> 
> ```
> 
> I am on Windows 2003 serer with Ruby 1.8.4 and Mongrel. Any help would  
> be greatly appreciated.

Line 560 of net/http.rb is this:

s = timeout(@open\_timeout) { TCPSocket.open(conn\_address(),  
conn\_port()) }

What happens when you run this standalone snippet?

require ‘socket’  
require ‘timeout’

s = Timeout.timeout(5){  
TCPSocket.open(url, 80)  
}

p s

s.close

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 28, 2007, 5:21pm UTC](https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034/3 "2007-06-28T17:21:49Z")

</div>

On Jun 28, 10:57 am, Daniel B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Net::HTTP.version\_1\_2  
> > Here is the error I get:
> 
> require ‘socket’
> 
> Regards,
> 
> Dan

Dan,

Thanks. Here is the error I get when executing the above code:

Timeout::Error (execution expired):  
c:/ruby/lib/ruby/1.8/timeout.rb:54:in `open' c:/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout’

I know it’s a valid URL. The page I am trying to access is sitting on  
the same box as my rails app.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 28, 2007, 7:08pm UTC](https://www.ruby-forum.com/t/bad-file-descriptor-error-using-net-http/108034/4 "2007-06-28T19:08:59Z")

</div>

On Jun 28, 9:20 am, removed\_email\_address@domain.invalid wrote:

> On Jun 28, 10:57 am, Daniel B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > require ‘socket’
> 
> c:/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout’
> 
> I know it’s a valid URL. The page I am trying to access is sitting on  
> the same box as my rails app.

That’s peculiar. Firewall or proxy issue perhaps? Maybe you need  
rubysspi?

[http://rubyforge.org/projects/rubysspi/](http://rubyforge.org/projects/rubysspi/)

Otherwise, I’m at a loss.

Regards,

Dan
