Forum: Ruby-core [ruby-trunk - Bug #9050][Open] I may have encountered a bug in the Ruby interpreter or extension lib

C4e88907313843cf07f6d85ba8162120?d=identicon&s=25 sekai (sekai kobayashi) (Guest)
on 2013-10-24 13:54
(Received via mailing list)
Issue #9050 has been reported by sekai (sekai kobayashi).

----------------------------------------
Bug #9050: I may have encountered a bug in the Ruby interpreter or
extension libraries.
https://bugs.ruby-lang.org/issues/9050

Author: sekai (sekai kobayashi)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: 2.0.0
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN



I got this message from two different sorce code.(Case1, Case2)
and, I recieve wrong http response data.(Case3)

【Case1】
■code
require 'socket'

host = "sekai-in-the-box.appspot.com"
port = 80
path = "/iseer.html"

request = "GET #{path} HTTP/1.0\r\n\r\n"
socket = TCPSocket.open(host, port)
socket.print(request)
response = socket.read
headers, body = response.split("\r\n\r\n", 2)
print body

■error log
please see err_log1.txt

-- Control frame information
-----------------------------------------------
c:0004 p:---- s:0018 e:000017 CFUNC  :write
c:0003 p:---- s:0016 e:000015 CFUNC  :print
c:0002 p:0097 s:0012 E:00034c EVAL
C:/Users/IBM_ADMIN/Desktop/net/http1.rb:12 [FINISH]
c:0001 p:0000 s:0002 E:001b9c TOP    [FINISH]

C:/Users/IBM_ADMIN/Desktop/net/http1.rb:12:in `<main>'
C:/Users/IBM_ADMIN/Desktop/net/http1.rb:12:in `print'
C:/Users/IBM_ADMIN/Desktop/net/http1.rb:12:in `write'




【Case2】
■code
filename = File.dirname(__FILE__) + File::SEPARATOR+"data1.txt"
#File.open(filename){|f| f.read}  #<= not error
p File.open(filename){|f| f.read}  #<= error

■error log
please see err_log2.txt

-- Control frame information
-----------------------------------------------
c:0003 p:---- s:0010 e:000009 CFUNC  :p
c:0002 p:0052 s:0006 E:0019fc EVAL
C:/Users/IBM_ADMIN/Desktop/net/thread_file_read.rb:4 [FINISH]
c:0001 p:0000 s:0002 E:001b94 TOP    [FINISH]





【Case3】
■code
require 'socket'
host = "www.example.com"
port = 80
path = "/index.html"
request = "GET #{path} HTTP/1.0\r\n\r\n"
socket = TCPSocket.open(host, port)
socket.print(request)
response = socket.read
headers, body = response.split("\r\n\r\n", 2)
print body

■result
C:\Users\IBM_ADMIN>ruby C:\Users\IBM_ADMIN\Desktop\net\http2.rb
<html><head><title>edgecastcdn.net</title></head><body><h1>edgecastcdn.net</h1></body></html>

but, http://www.example.com/'s response is not same as I wrote about.
This topic is locked and can not be replied to.