Version 5.2.1 of the Passenger application server for Ruby, Node.js, Meteor and Python has been released. We fixed a few important regressions, notably the
max pool idle time setting, and a crash in the Apache integration mode. We've also made it possible to use our new RAM-based pricing plan on Heroku.
The 5.2 series brings a major internal overhaul of configuration management, which is the first step in deep inspection and on-the-fly reconfiguration of Passenger. The 5.x series of Passenger in general brings a plethora of improvements in uptime maximization, security and efficiency.
Please be aware that you can enjoy enterprise features and sponsor the open source development directly by buying Phusion Passenger Enterprise.
Max pool idle time regression fixed
An issue unfortunately slipped through our testing of the large internal refactoring of configuration option handling in Passenger 5.2.0. The pool idle time could no longer be set to unlimited (GH-2020).
This has now been fixed.
Crash in Apache without ServerName fixed
Another regression in version 5.2.0 caused a crash in Apache if the top-level configuration was lacking a
ServerName (GH-2029). This is allowed in Apache, and we've fixed the new configuration handling to take care of this case.
RAM-based pricing for Heroku
Passenger Enterprise customers can now make use of the RAM-based pricing plan with automatic reporting of the active dyno RAM.
This did not work yet in previous releases because interestingly, Heroku dynos do not actually appear to the separate RAM that is visible to a dyno type. For example, a 512 MB dyno can easily report a total of 60 GB of available RAM. With Passenger Enterprise 5.2.1 we can infer dyno type by taking note of the process limit on each dyno.
Various improvements & fixes
- Fixes a regression from 5.1.11 that prevented Passenger from compiling on FreeBSD in some cases. Closes GH-2031.
- Fixes a bounds issue in printing an error message that could occur in some cases when spawning a child process fails. Issue was present from 5.1.11.
- Warns if using an incompatible compiler on macOS < 10.13. Closes GH-2017.
- No longer uses Security Framework on macOS 10.13+. This will prevent further keychain warnings from appropriately compiled Passengers.
- Fixes warning on macOS about /proc/self access (excluded some code that was intended only for Linux).
passenger-install-nginx-modulenow downloads the preferred Nginx version via https. Thanks to smiba for pointing this out.
We've taken some time to perform upgrades on passenger-docker, our (Open Source) project that aims to make Docker image building for web apps much easier and faster.
Besides the latest Passenger, the 0.9.29 passenger-docker release also includes the latest stable Node.js (8.9.4 LTS), and support for the latest Ruby versions (including 2.5, courtesy of ledermann). We also figured out that we hadn't been updating the docker
latest tags on our images since we switched to Makefile-based image publishing, so that's now fixed!
Please see the installation guide.
Upgrading to 5.2.1
We strongly advise staying up to date with the latest version.
See also the upgrade notes below!
If you are upgrading from 4.x, please read the 5.0 upgrade notes to learn about potential upgrade caveats.
Download issue with old
Old versions of
gem (below 2.2.0, released in 2013) may fail to download the Passenger Enterprise gem from our rubygem hosting software (Gem in a box).
ERROR: Could not find a valid gem 'passenger-enterprise-server' (= 5.1.4), here is why: Unable to download data from https://..@www.phusionpassenger.com/enterprise_gems/ - bad response Unauthorized 401
If this happens, please upgrade to a newer version of gem:
gem install rubygems-update; update_rubygems
Special notes about capistrano-passenger
If you are using Capistrano and capistrano-passenger, then it may fail with this error:
SSHKit::Runner::ExecuteError: Exception while executing as email@example.com: undefined method `' for nil:NilClass NoMethodError: undefined method `' for nil:NilClass Tasks: TOP => passenger:restart
This is due to an incompatibility in capistrano-passenger with Passenger 5.0.22 and later. Please upgrade capistrano-passenger to 0.2.0 or later.