Bug #7469
closedWEBrick "Could not determine content-length of response body. Set content-length of the response..." even when content-length is set
Description
Minimal demonstration code:
########
require 'webrick'
class BugDemonstrator < WEBrick::HTTPServlet::AbstractServlet
def do_GET(request, response)
response.body = ''
response.status = 204
response.content_length = 0
end
end
server = WEBrick::HTTPServer.new(:Port => 8080, :AccessLog => [])
server.mount "/", BugDemonstrator
trap("INT") do
server.shutdown
end
server.start
########
Output when run, connecting to localhost:8080 to issue an HTTP GET:
$ ruby webrickbug.rb
[2012-11-29 13:21:25] INFO WEBrick 1.3.1
[2012-11-29 13:21:25] INFO ruby 1.9.3 (2012-11-10) [x86_64-linux]
[2012-11-29 13:21:25] WARN TCPServer Error: Address already in use - bind(2)
[2012-11-29 13:21:25] INFO WEBrick::HTTPServer#start: pid=4941 port=8080
[2012-11-29 13:21:29] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true
^C[2012-11-29 13:21:32] INFO going to shutdown ...
[2012-11-29 13:21:32] INFO WEBrick::HTTPServer#start done.
$ ruby --version
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
$
I'm doing literally what the warning message says to do -- i.e. setting the content-length of the response -- but I'm still getting the warning.
Updated by nahi (Hiroshi Nakamura) over 11 years ago
- Category set to lib
- Assignee set to nahi (Hiroshi Nakamura)
Updated by steveklabnik (Steve Klabnik) over 11 years ago
We were seeing this as well when using webrick with Rails. However, putting
gem 'webrick', '= 1.3.1'
in the Gemfile seemed to fix it, which is strange, since the standard library one is also v1.3.1. Is it possible that the gem is different than stdlib?
Updated by drbrain (Eric Hodel) over 11 years ago
- Status changed from Open to Assigned
=begin
I cannot reproduce it with the example code given or by removing (({response.body = ''})), (({response.content_length = 0})) or both lines with latest trunk.
=end
Updated by jeremyevans0 (Jeremy Evans) over 4 years ago
- Status changed from Assigned to Closed