Comment 7 for bug 1575220

Revision history for this message
Trent Lloyd (lathiat) wrote :

I have confirmed that this patch seems to *completely* break passenger (v2) in precise, no variables are passed through at all.

This works as expected on xenial (Passenger 5) with the latest release including the same fix, so I am fairly sure something went wrong in backporting the patch which appears to have been done as part of squeeze-lts. Squeeze LTS concluded in February 2016 so a patch from Debian seems unlikely.

Test case for the issue:
root@precise:~# apt-get install apache2 libapache2-mod-passenger

root@preicse:~# a2enmod passenger

root@precise:~# cat /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/public
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
        PassengerEnabled on
</VirtualHost>

root@precise:~# cat /var/www/config.ru
# my_rack_app.rb
require 'rack'
require 'pp'
app = proc do |env|
  [ 200, {'Content-Type' => 'text/plain'}, [PP.pp(Rack::Request.new(env), "")] ]
end
run app

(Old Version)
apt-get install libapache2-mod-passenger=2.2.11debian-2
Result:
#<Rack::Request:0x7f1ab158c2a8
 @env=
  {"rack.run_once"=>false,
   "_"=>"_",
   "HTTP_ACCEPT_ENCODING"=>"gzip, deflate, sdch",
   "PATH_INFO"=>"/",
   "HTTP_CACHE_CONTROL"=>"max-age=0",
   "SCRIPT_NAME"=>"",
   "DOCUMENT_ROOT"=>"/var/www/public",
   "rack.version"=>[1, 0],
   "SERVER_SOFTWARE"=>"Apache/2.2.22 (Ubuntu)",
   "rack.multiprocess"=>true,
   "HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.8",
   "SERVER_PROTOCOL"=>"HTTP/1.1",
   "HTTP_ACCEPT"=>
    "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
   "HTTP_UPGRADE_INSECURE_REQUESTS"=>"1",
   "QUERY_STRING"=>"asff",
   "SERVER_ADMIN"=>"webmaster@localhost",
   "rack.url_scheme"=>"http",
   "rack.input"=>
    #<PhusionPassenger::Utils::RewindableInput:0x7f1ab158cc80
     @io=#<UNIXSocket:0x7f1ab1594548>,
     @rewindable_io=nil,
     @unlinked=false>,
   "REQUEST_URI"=>"/?asff",
   "rack.multithread"=>false,
   "REQUEST_METHOD"=>"GET",
   "REMOTE_ADDR"=>"10.48.134.22",
   "REMOTE_PORT"=>"36638",
   "SERVER_ADDR"=>"10.48.134.78",
   "SERVER_NAME"=>"10.48.134.78",
   "rack.errors"=>#<IO:0x7f1ab15f7aa8>,
   "HTTP_USER_AGENT"=>
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
   "HTTP_CONNECTION"=>"keep-alive",
   "HTTP_HOST"=>"10.48.134.78",
   "SERVER_PORT"=>"80"}>

(New Version)
apt-get upgrade
# upgrade only 'reloads' apache and does not restart it which doesn't load the new module, so restart it
/etc/init.d/apache2 restart

Result:
#<Rack::Request:0x7fea869062d0
 @env=
  {"_"=>"_",
   "rack.url_scheme"=>"http",
   "rack.version"=>[1, 0],
   "rack.multithread"=>false,
   "rack.run_once"=>false,
   "rack.input"=>
    #<PhusionPassenger::Utils::RewindableInput:0x7fea86906438
     @io=#<UNIXSocket:0x7fea86906848>,
     @rewindable_io=nil,
     @unlinked=false>,
   "rack.multiprocess"=>true,
   "rack.errors"=>#<IO:0x7fea8838bab0>}>