Bug #4478

Passenger file serving broken with 2.6

Added by Brice Figureau almost 2 years ago. Updated almost 2 years ago.

Status:Closed Start date:08/05/2010
Priority:High Due date:
Assignee:Brice Figureau % Done:

0%

Category:fileserving
Target version:2.6.1
Affected Puppet version:2.6.1rc1 Branch:http://github.com/masterzen/puppet/tree/tickets/2.6.x/4478
Keywords:
Votes: 0

Description

Several passenger users reported that some version (including 2.2.15) were crashing while serving streamed files in 2.6 with the following stack trace:

[Thu Jul 29 18:03:00 2010] [error] [client 136.168.1.4] Premature end of script headers: preamble
[ pid=28460 file=ext/apache2/Hooks.cpp:735 time=2010-07-29 18:03:00.77 ]:
The backend application (process 30417) didn't send a valid HTTP response. It might have crashed during the middle of sending an HTTP response, so please check whether there are crashing problems in your application. This is the data that it sent: [Content-Type]
*** Exception NoMethodError in PhusionPassenger::Rack::ApplicationSpawner (undefined method `each' for 3238:Fixnum) (process 30417):
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/request_handler.rb:100:in `process_request'
    from /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/utils.rb:278:in `each'
    from /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/utils.rb:277:in `each'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:120:in `run'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:65:in `spawn_application'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/utils.rb:252:in `safe_fork'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:58:in `spawn_application'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:41:in `spawn_application'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:150:in `spawn_application'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
    from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/bin/passenger-spawn-server:61

The issue is that passenger needs http header values to be strings, but we send the Content-Length as an int.


Related issues

related to Puppet - Bug #4319: File serving broken via mongrel in Puppet 2.6 Closed 07/21/2010

History

Updated by Brice Figureau almost 2 years ago

  • Branch set to http://github.com/masterzen/puppet/tree/tickets/2.6.x/4478

Patch confirmed to fix* the problem available at: http://github.com/masterzen/puppet/tree/tickets/2.6.x/4478

http://projects.reductivelabs.com/issues/4319#note-11

Updated by Markus Roberts almost 2 years ago

  • Status changed from In Topic Branch Pending Review to Closed

commit:8e31b528e139a2940d6932ab80375bb5eebfbe29 Passenger needs HTTP headers values to be string

Also available in: Atom PDF