http.get call works, but then fails when using debugger

J

Jeff Jortner

Hi,
Can someone tell me if I have found a bug or am doing something wrong
using Net::HTTP.get ? If I run the code without the -rdebug flag, then
it works perfectly. If I use the flag and then simply do a continue,
then I get the errors shown after the code below. I have stepped
through the code and shown that it is the get2 call that causes the
error. Also happens with the get method.

I/m running Ruby version 1.8.5 on both Mac (PowerPC) and Redhat
Enterprise Linux. Same result on both.

Jeff

#!/usr/bin/ruby

require 'net/http'

SITE = "http://campus.acm.org"
PATH = '/Public/fmr/'
USERAGENT = ' Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3'
http = Net::HTTP.new('campus.acm.org',80)
puts " "
puts "First Get"
headers = {
'Content-type' => 'application/x-www-form-urlencoded',
'User-Agent' => USERAGENT,
'Keep-Alive' => '300',
'Connection' => 'keep-alive'
}

resp, data = http.get2(PATH, headers)
puts 'Code= ' + resp.code

---------------
spartan[293]ruby -rdebug jtest1.rb
Debug.rb
Emacs support available.

jtest1.rb:3:require 'net/http'
(rdb:1) c

First Get
/usr/local/lib/ruby/1.8/net/protocol.rb:133: `end of file reached'
(EOFError)
from /usr/local/lib/ruby/1.8/timeout.rb:76:in `timeout'
from /usr/local/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
from /usr/local/lib/ruby/1.8/net/protocol.rb:104:in `read_all'
from /usr/local/lib/ruby/1.8/net/http.rb:2217:in `read_body_0'
from /usr/local/lib/ruby/1.8/net/http.rb:2170:in `read_body'
from /usr/local/lib/ruby/1.8/net/http.rb:2195:in `body'
from /usr/local/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
from /usr/local/lib/ruby/1.8/net/http.rb:1049:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:1034:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:543:in `start'
from /usr/local/lib/ruby/1.8/net/http.rb:1032:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:945:in `get2'
from jtest1.rb:17
/usr/local/lib/ruby/1.8/net/protocol.rb:133: @rbuf <<
@io.sysread(1024)
 
J

Jan Svitok

Hi,
Can someone tell me if I have found a bug or am doing something wrong
using Net::HTTP.get ? If I run the code without the -rdebug flag, then
it works perfectly. If I use the flag and then simply do a continue,
then I get the errors shown after the code below. I have stepped
through the code and shown that it is the get2 call that causes the
error. Also happens with the get method.

I/m running Ruby version 1.8.5 on both Mac (PowerPC) and Redhat
Enterprise Linux. Same result on both.

Jeff

#!/usr/bin/ruby

require 'net/http'

SITE = "http://campus.acm.org"
PATH = '/Public/fmr/'
USERAGENT = ' Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3'
http = Net::HTTP.new('campus.acm.org',80)
puts " "
puts "First Get"
headers = {
'Content-type' => 'application/x-www-form-urlencoded',
'User-Agent' => USERAGENT,
'Keep-Alive' => '300',
'Connection' => 'keep-alive'
}

resp, data = http.get2(PATH, headers)
puts 'Code= ' + resp.code

---------------
spartan[293]ruby -rdebug jtest1.rb
Debug.rb
Emacs support available.

jtest1.rb:3:require 'net/http'
(rdb:1) c

First Get
/usr/local/lib/ruby/1.8/net/protocol.rb:133: `end of file reached'
(EOFError)
from /usr/local/lib/ruby/1.8/timeout.rb:76:in `timeout'
from /usr/local/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
from /usr/local/lib/ruby/1.8/net/protocol.rb:104:in `read_all'
from /usr/local/lib/ruby/1.8/net/http.rb:2217:in `read_body_0'
from /usr/local/lib/ruby/1.8/net/http.rb:2170:in `read_body'
from /usr/local/lib/ruby/1.8/net/http.rb:2195:in `body'
from /usr/local/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
from /usr/local/lib/ruby/1.8/net/http.rb:1049:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:1034:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:543:in `start'
from /usr/local/lib/ruby/1.8/net/http.rb:1032:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:945:in `get2'
from jtest1.rb:17
/usr/local/lib/ruby/1.8/net/protocol.rb:133: @rbuf <<
@io.sysread(1024)

This is probably normal behaviour. Run your script with -w or -d
switch and you'll see all exceptions. The debugger stops on all
excetions even if they are caught.
 

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

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top